2014-02-19 117 views
0

你好,我也遇到了问题,编写这些代码的Microsoft SQL总和值时,选择SUMA *(选择顶部1值....)

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 

NOW的我proglem在这里我有多个suvienodinta valiuta与相同的narioID 然而,我要总结它的每一个narioID将只有1 valiue 我要接受的例子

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

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

+0

这是MySQL的或SQL Server? – FrankPl

+0

您在第二个'select'(即'union'后面)缺少选择列表。 – FrankPl

回答

0

这个结构我不明白什么部分的最后

union 
select 
from [išlaidos pajamos] 
您的发言

是干什么的,因为它缺少选择列表。因此,我现在假设它不是你的查询的一部分,只与其余部分相关。最终order by

sum()as suvienodinta_valiuta之前包括从第一select后的第一个表达式,并追加group by tipas, narioID:在这种情况下,你应该使用sumgroup 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