表名:UTable
表结构:
UID Udept Uname P01 P02 P03
表内容:
UID Udept Uname P01 P02 P03
1 代理部 策划组 OK OK
2 代理部 策划组 OK OK
3 代理部 策划组 OK
4 代理部 宣传组 OK OK
5 代理部 宣传组 OK
6 代理部 宣传组
希望得到查询结果
Udept Uname P01 P02 P03
代理部 策划组 OK OK OK
代理部 宣传组 OK OK
说明:根据Udept,Uname分类,通过查询显示"P01","P02","P03",三个字段中任何一组有"OK"的时候,显示内容为 "OK"(字段内的值),然后合并显示至同一行。
不知道这样描述是否清楚,希望还有人未睡觉。
最好能用sql语句实现.
先感谢
为什么只能有100分
4 个解决方案
#1
SELECT Udept, Uname, CASE WHEN SUM(CASE WHEN P01='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P01, CASE WHEN SUM(CASE WHEN P02='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P02, CASE WHEN SUM(CASE WHEN P03='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P03
FROM UTable GROUP BY Udept, Uname
#2
灰常感谢,测试一下
#3
牛,只是少了一个">="号,可能是说明不清楚,换成access里Iif测试通过,感谢!
#4
终于可以睡觉了
#1
SELECT Udept, Uname, CASE WHEN SUM(CASE WHEN P01='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P01, CASE WHEN SUM(CASE WHEN P02='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P02, CASE WHEN SUM(CASE WHEN P03='OK' THEN 1 ELSE 0 END)>1 THEN 'OK' ELSE '' END AS P03
FROM UTable GROUP BY Udept, Uname
#2
灰常感谢,测试一下
#3
牛,只是少了一个">="号,可能是说明不清楚,换成access里Iif测试通过,感谢!
#4
终于可以睡觉了