Мне нужно получить результаты в очень специфическом формате
пытался создать временную таблицу, но не знаю, как объединить только при определенных условиях
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), то первая идет в первой строке, а последующие - в отдельной строке с 0 Reg и 0 Ovt