选择suma *时的microsoft sql sum值(选择前1个值....)

时间:2014-02-19 19:06:32

标签: sql sql-server sum

你好我写完这段代码后遇到了问题

select  suma*(select top 1 [Enantis kursas]
from [išlaidos pajamos] isp
join Kursas as k on ISP.[valiutos trumpinys]=k.[valiutos trumpinys]
where k.[Kurso Laikas] between '2000-12-30' and (select laikas2
from [išlaidos pajamos]
where Aprašymo_Id=ISL.Aprašymo_Id)
and k.[valiutos trumpinys]=(select [valiutos trumpinys]
from [išlaidos pajamos]
where Aprašymo_Id=ISL.Aprašymo_Id)                                            
order by [Kurso Laikas] desc) as suvienodinta_valiuta, tipas, narioID
from [išlaidos pajamos] ISL
join Tipas as T on T.Aprašymo_Id=ISL.Aprašymo_Id
where T.tipas='Paj' and ISL.laikas2 between '2013-01-01' AND '2013-12-31 23:59:59:999' 
order by suvienodinta_valiuta
union
select
from [išlaidos pajamos]

和rezult是

suvienodinta_valiuta        tipas                   narioID
160,004                     Paj                     2
200,00                      Paj                     1
414,336                     Paj                     2
500,00                  Paj                     2

nows我的proglem在这里我有多个suvienodinta valiuta与相同的narioID 但是我想总结一下,每一个narioID都只有1个valiue 我想要收到的例子

suvienodinta_valiuta        tipas                   narioID
1074,34                     Paj                     2
200,00                      Paj                     1

最大的问题是我需要select ( select ....)

的结构

1 个答案:

答案 0 :(得分:0)

我不明白最后一部分是什么

union
select
from [išlaidos pajamos]
你的陈述的

正在做,因为它缺少选择列表。因此,我现在假设它不是您的查询的一部分,只与其余部分dal。在这种情况下,您应该使用sumgroup by,如下所示:

select之后的第一个表达式包含在as suvienodinta_valiuta中的sum()之前,并在最终group by tipas, narioID之前附加order by

select  sum(suma*(select top 1 [Enantis kursas]
from [išlaidos pajamos] isp
join Kursas as k on ISP.[valiutos trumpinys]=k.[valiutos trumpinys]
where k.[Kurso Laikas] between '2000-12-30' and (select laikas2
from [išlaidos pajamos]
where Aprašymo_Id=ISL.Aprašymo_Id)
and k.[valiutos trumpinys]=(select [valiutos trumpinys]
from [išlaidos pajamos]
where Aprašymo_Id=ISL.Aprašymo_Id)                                            
order by [Kurso Laikas] desc)) as suvienodinta_valiuta, tipas, narioID
from [išlaidos pajamos] ISL
join Tipas as T on T.Aprašymo_Id=ISL.Aprašymo_Id
where T.tipas='Paj' and ISL.laikas2 between '2013-01-01' AND '2013-12-31 23:59:59:999'
group by tipas, narioID
order by suvienodinta_valiuta