总结值即使它们不存在于第二个表
我有两个表。第一个包含产品代码,第二个产品代码和数量。总结值即使它们不存在于第二个表
现在我想总结为每个产品代码的所有分位数甚至有不是所有的产品在第二个表。 输出应该是产品代码和每个代码的总量,并为他们没有让数量它的代码为0
**Table1** productName | -------------- a | b | c | d | e | **Table2** productName | QTY | ---------------------- a | 3 | b | 4 | a | 1 | b | 2 | c | 1 | **Output** productName | QTY | ---------------------- a | 4 | b | 6 | c | 1 | d | | e | |
SELECT tbl1.productname, SUM(tbl2.qty) AS TotQTY
FROM tbl1
INNER JOIN tbl2 ON tbl1.productname = tbl2.productname
group by tbl1.productname
这是我在SQL Fiddle
我尝试只能得到数量记录,但其他不显示。
SELECT Table1.productName,COALESCE(SUM(Table2.qty),0) AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
group by Table1.productName
它将显示零而不是显示空。 –
SELECT Table1.productName, SUM(Table2.qty) AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
group by Table1.productName
这适用,但仅适用于有数量的代码。我想包括所有记录。在我的第一篇文章中看到我想要的输出类型。 – Josef
它显示所有记录。请检查一次。 –
这似乎是你想要什么: -
SELECT Table1.productName, COALESCE(SUM(Table2.qty),0) AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
GROUP BY Table1.productname
SQLfiddle: -
Sqlfiddle不适合我(只是挂)工作,但听起来像你需要一个左外部JOIN – Kickstart
我不知道今天有什么问题,用sqlfiddle ..用LEFT OUTER JOIN它只返回我没有qauntity的记录。 – Josef
啊,SQLfiddle醒了。在SQLfiddle中,您省略了GROUP BY子句。您还检查了_WHERE Table2.productName IS NULL_,它将排除在table2上有数量的任何行。 – Kickstart