永发信息网

sql server 2008怎么把同一个表根据不同条件查询出来的两列(一个表查询一列)连起来变成两列输出

答案:2  悬赏:0  手机版
解决时间 2021-03-02 04:28
  • 提问者网友:咪咪
  • 2021-03-01 13:00
sql server 2008怎么把同一个表根据不同条件查询出来的两列(一个表查询一列)连起来变成两列输出
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-01 13:15
select a.1,b.1 from table1 a,table1 b where a.column1 = condition1 and b.column2 = condition2;
全部回答
  • 1楼网友:轻熟杀无赦
  • 2021-03-01 14:45
第一个结果的格式, 你先看看?合适不合适? with mycte as ( select row_number() over(partition by begin_time, end_time, left(op_id,1) order by op_id) as no, operator.* from operator ) select begin_time as [开始时间], end_time as [结束时间], max(case when left(op_id,1) = '1' then op_id else '' end) as [一组工号], max(case when left(op_id,1) = '1' then work_time else null end) as [工作时长], max(case when left(op_id,1) = '2' then op_id else '' end) as [二组工号], max(case when left(op_id,1) = '2' then work_time else null end) as [工作时长], max(case when left(op_id,1) = '3' then op_id else '' end) as [三组工号], max(case when left(op_id,1) = '3' then work_time else null end) as [工作时长] from mycte group by begin_time, end_time, no 第二个结果的格式 select begin_time as [开始时间], end_time as [结束时间], sum( case when left(op_id,1) = '1' then 1 else 0 end ) as [一组上班人数], sum( case when left(op_id,1) = '2' then 1 else 0 end ) as [二组上班人数], sum( case when left(op_id,1) = '3' then 1 else 0 end ) as [三组上班人数] from operator group by begin_time, end_time
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯