我需要以非常特定的格式获取结果
尝试创建临时表,但不知道如何仅在特定条件下进行组合
create table #Temptable1
(static1 varchar(100), idnum varchar(100), static2 varchar(100), reg
decimal, ovt decimal, other decimal, static3 varchar(100))
insert into #temptable1
Select
'D00',
e.idnum,
' ',
case when p.Pdn =1 then (isnull(sum(p.hours),0))*100 else 0 end,
case when p.Pdn =2 then (isnull(sum(p.hours),0))*100 else 0 end,
case when p.Pdn in (4,17) then (isnull(sum(p.hours),0))*100 else 0 end,
case when p.Pdn =4 then 20 when Pdn =17 then 23 else 0 end
from e, p
where e.filekey=p.filekey and p.Pdn in (1,2,4,17)
group by e.idnum, p.Pdn
order by e.idnum
select static1, idnum, static2, sum(reg), sum(ovt), sum(other), static3 from
#temptable1
group by static1, static2, static3, idnum
static1 idnum static2 reg ovt other static3
D00 64 6475 25 0 0
D00 64 0 0 800 20
D00 64 0 0 775 23
这都是很好的信息,但是我需要这样的格式:
static1 idnum static2 reg ovt other static3
D00 64 6475 25 800 20
D00 64 0 0 775 23
换句话说,如果其他时间中除了0以外没有其他时间,并且static3可以。如果有几个小时,则必须位于同一行。如果有多个其他对象(按static3分组),则第一个出现在第一行,随后的一个出现在它们自己的行中,Reg和Ovt为0