我有一个数据库结构,我试图选择所有发票与相应的员工和客户,商店等..也想要将每张发票的价值相加并将其显示为总额
我提出了这个问题:
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
我从发票中得到了正确的值.. :(
答案 0 :(得分:0)
GROUP BY id.invoiceID
在第一个查询中,您似乎是从表tbInvoice进行分组,但在第二个查询中,您是从tbInvoiceData进行分组。不知道是否有帮助
答案 1 :(得分:0)
好的,我得到了......正在伪造这个......
AND p.productID = id.productID
感谢您的回答