SQL查询选择所有发票和SUM值

时间:2013-05-15 13:47:29

标签: sql

我有一个数据库结构,我试图选择所有发票与相应的员工和客户,商店等..也想要将每张发票的价值相加并将其显示为总额

我提出了这个问题:

SELECT TOP 10
i.invoiceID, 
s.storeName, 
c.clientName,
sum(id.quantity * p.unitPrice) as total, 
(e.firstName + ' ' + e.lastName) as EmpName, 
i.invoiceDate

FROM
tbProduct p, 
tbInvoice i, 
tbInvoiceData id, 
tbEmployee e, 
tbStore s, 
tbClient c

WHERE
i.invoiceID = id.invoiceID
AND
e.employeeID = i.employeeID
AND
s.storeID = e.storeID
AND
c.clientID = i.clientID

GROUP BY
i.invoiceID,
s.storeName, 
c.clientName, 
e.firstName, 
e.lastName, 
i.invoiceDate

order by 
i.invoiceID

但是TOTAL中的值似乎不正确(总和部分),我做错了什么......?因为如果我运行这个查询:

select top 10
a.invoiceid, sum(a.quantity * b.unitprice) as total

from
tbInvoiceData a,
tbProduct b

where
a.productID = b.productID

group by
a.invoiceid

我从发票中得到了正确的值.. :(

2 个答案:

答案 0 :(得分:0)

GROUP BY id.invoiceID

在第一个查询中,您似乎是从表tbInvoice进行分组,但在第二个查询中,您是从tbInvoiceData进行分组。不知道是否有帮助

答案 1 :(得分:0)

好的,我得到了......正在伪造这个......

  

AND p.productID = id.productID

感谢您的回答