表“报警记录”中有下面几个组
报警ID  报警名称   报警时间           报警状态  操作员
1         AAA      2010-1-1 12:12:32    OK         123
2         BBB      2010-1-1 20:12:22    ERR        123
3         CCC      2010-1-2 12:12:32    OK         123
4         DDD      2010-1-2 20:12:22    ERR        123
5         AAA      2010-1-3 12:12:32    OK         123
6         BBB      2010-1-3 13:12:22    ERR        123
7         CCC      2010-1-3 14:12:32    OK         123
8         DDD      2010-1-3 20:12:22    ERR        123
9         AAA      2010-1-1 12:12:32    OK         123
10        BBB      2010-1-1 20:12:22    ERR        567
11        CCC      2010-1-2 12:12:32    OK         567
12        DDD      2010-1-2 20:12:22    ERR        567
13        AAA      2010-1-4 12:12:32    OK         567
14        GGG      2010-1-4 13:12:22    ERR        567
15        CCC      2010-1-4 14:12:32    OK         567
16        KKK      2010-1-4 20:12:22    ERR        567
17        CCC      2010-2-3 14:12:32    OK         123
18        DDD      2010-2-3 20:12:22    ERR        123
19        AAA      2010-2-8 12:12:32    OK         567
20        BBB      2010-2-9 20:12:22    ERR        567
21        CCC      2010-2-12 12:12:32   ERR        567
22        DDD      2010-2-12 20:12:22   ERR        123
23        LLL      2010-3-4 12:12:32    OK         123
24        BBB      2010-3-4 13:12:22    ERR        123
25        CCC      2010-3-4 14:12:32    OK         123
26        FFF      2010-3-4 20:12:22    ERR        567
问题1现在要选出“报警状态”的最后一次记录是ERR的内容,并以“报警ID”降序排例,且“报警名称”中不重复的项目,应该怎么写SQL语句?
问题2选出“操作员”内容是“123”或是“567”的上述内容问题1的正确结果是:
26        FFF      2010-3-4 20:12:22    ERR        123
24        BBB      2010-3-4 13:12:22    ERR        123
22        DDD      2010-2-12 20:12:22   ERR        123
16        KKK      2010-1-4 20:12:22    ERR        567
14        GGG      2010-1-4 13:12:22    ERR        567
问题2的正确结果是:
24        BBB      2010-3-4 13:12:22    ERR        123
22        DDD      2010-2-12 20:12:22   ERR        123
和:
26        FFF      2010-3-4 20:12:22    ERR        567
16        KKK      2010-1-4 20:12:22    ERR        567
14        GGG      2010-1-4 13:12:22    ERR        567
最好能经过验证。给出SQL语句的代码。谢谢

解决方案 »

  1.   

    问题1
    select 报警ID,报警名称,MAX(报警时间) as 最近时间,报警状态,操作员 from 报警记录 where 报警状态='ERR' group by 报警名称 问题2
    select * from 报警记录 where 操作员='123' or 操作员='567' 
      

  2.   

    裸机....啥都没有...就没有测试了....
    问题1  补充一下..
    select 报警ID,报警名称,MAX(报警时间) as 最近时间,报警状态,操作员 from 报警记录 where 报警状态='ERR' group by 报警名称 order by 报警ID Desc