小
小红河
Unregistered / Unconfirmed
GUEST, unregistred user!
先来个提示:<br>表结构:<br>A表: <br>姓名 代码<br>张三 001<br>李四 002<br>王麻子 003<br><br>B表: <br>代码 工作名称 最后工作时间(datetime类型) <br>001 种类1 10月29日<br>002 种类2 10月30日<br>001 种类1 10月30日<br>002 种类3 10月31日<br>003 种类1 10月20日<br><br>想得到:每个人做每项工作的最后时间 <br>D表: <br>姓名 种类1 种类2 种类3<br>张三 10月31日 无 无<br>李四 无 10月30日 10月31日<br>王麻子 10月20日 无 无<br><br>答案:<br>select 姓名, <br>Max(case 工作名称 when '种类1' then 最后工作时间 else null end) 种类1,<br>Max(case 工作名称 when '种类2' then 最后工作时间 else null end) 种类2,<br>Max(case 工作名称 when '种类3' then 最后工作时间 else null end) 种类3<br>from a,b<br>where a.代码=b.代码<br>group by 姓名 <br><br>现在加了一个表c:<br>C表:<br>日期 时间标准<br>2007-10-29 17:25<br>2007-10-30 17:30<br>2007-10-31 18:00<br>2007-10-20 17:35<br><br>要求:在以上的基础上,如果列是“种类三''的话,就要把“最后工作时间”中的日期取出来,然后在C表中找到对应的日期,按照时间标准进行判断,只有“最后工作时间”晚于“时间标准”的纪录才算数,否则为空<br><br>即:<br><br>A表:<br>姓名 代码<br>张三 001<br>李四 002<br>王麻子 003<br><br>B表: <br>代码 工作名称 最后工作时间(datetime类型) <br>001 种类1 2007-10-29 17:00<br>002 种类2 2007-10-30 17:25<br>001 种类1 2007-10-30 17:40<br>002 种类3 2007-10-31 17:25<br>003 种类1 2007-10-20 17:58<br>002 种类3 2007-10-30 17:45<br>003 种类3 2007-10-20 17:30<br><br>C表:<br>日期 时间标准<br>2007-10-29 17:25<br>2007-10-30 17:30<br>2007-10-31 18:00<br>2007-10-20 17:35<br> <br><br><br>想得到:每个人做每项工作的最后时间 <br>D表: <br>姓名 种类1 种类2 种类3<br>张三 2007-10-30 17:40 无 无<br>李四 无 2007-10-30 17:25 2007-10-30 17:45<br>王麻子 2007-10-20 17:58 无 无 无