2010-10-26 50 views
0

我想從下面的查詢中獲得數量總和。 我如何在下面提到的查詢中編寫group by子句。在組條款中出現問題

select top 1 
EvrId, 
TimeStamp, 
Date, 
BnhTnkMik1 as Quantity, 
(select TnkCode from Tanklar where TnkId=BnhTnkId) as Tank, 
FuelCode, 
InvoiceNo from Evrak 
join Hareket on (BnhEvrId=EvrId) 
join Stoklar on (StokId=BnhStok) 
where EvrTip=14 and EvrStatu='A' 
+0

你的語法極不理想很多。你應該使用表別名......現在我們無法真正知道哪些列來自哪個表。 join子句不需要括號,並且對於Tank字段的子查詢可能會更快並且更加一致。 – Fosco 2010-10-26 12:42:38

+0

實際上,「BnhTnkMik1」可能包含1個或多個「Hareket」表中的值。我需要根據那裏的特定產品的總數量EvrId,它與BnhEvrId列映射。 – 2010-10-26 13:03:22

回答

0
select 
    EvrId, 
    sum(BnhTnkMik1) as Quantity, 
from Evrak 
join Hareket on (BnhEvrId=EvrId) 
join Stoklar on (StokId=BnhStok) 
where EvrTip=14 and EvrStatu='A' 
group by 
    EvrId 
+0

謝謝你,但我得到的數據與我之前獲得的數據相同 – 2010-10-26 12:51:15

+0

@ gorfor.net - 你需要在你的問題中更具體。你想要的總和是多少? EvrId或其他專欄? – Martin 2010-10-26 13:05:50

0
select top 1 
    EvrId, 
    TimeStamp, 
    Date, 
    SUM(BnhTnkMik1) as Quantity, 
    (select TnkCode from Tanklar where TnkId=BnhTnkId) as Tank, 
    FuelCode, 
    InvoiceNo 
from 
    Evrak 
    join Hareket on (BnhEvrId=EvrId) 
    join Stoklar on (StokId=BnhStok) 
    where EvrTip=14 and EvrStatu='A' 
GROUP BY 
    EvrId, 
    TimeStamp, 
    Date, 
    (select TnkCode from Tanklar where TnkId=BnhTnkId), 
    FuelCode, 
    InvoiceNo 
+0

感謝您的回覆 但我在執行後出現以下錯誤 無法在用於GROUP BY子句的group by列表的表達式中使用聚合或子查詢。 – 2010-10-26 12:49:55