我必须组合我在mySQL中创建的两个表中的数据。
我应该弄清楚每一件产品在任何一天到达的数量。我创建了以下查询:
SELECT SUM(Amount) Shipment.Arrival_date,
Shipment.Shipment_ID,
`Product shipment`.Product_Code,
`product shipment`.Shipment_ID,
`product Shipment`.Amount
FROM `Product shipment`, `shipment`
WHERE `product Shipment`.Shipment_ID=`Product Shipment`.Product_code
AND Arrival_date = '2014-01-01
我的两个表分别称为装运和产品装运。
此外,我的货件表中有一个描述到货日的列,以及cargo_ID,它是我的产品装运表中货件_ID的主键。
在我的产品发货表中,shipment_ID由product_code和产品金额描述。
我的查询返回错误#1064。有关如何解决的任何建议吗?
答案 0 :(得分:0)
试试这个:
SELECT SUM(ps.Amount),
s.Arrival_date,
s.Shipment_ID,
ps.Product_Code,
ps.Shipment_ID,
ps.Amount
FROM
`Product shipment` AS ps,
`shipment` AS s
WHERE
ps.Shipment_ID=ps.Product_code
AND
s.Arrival_date = '2014-01-01'
请注意,您将ps表连接到ps表,它可能是一个想要的行为,但你永远不会把ps加入到s
答案 1 :(得分:0)
至少你缺少SUM(Amount)和Shipment.Arrival_date之间的逗号,或者缺少' as'从同一个地方。另外,WHERE子句中的Arrival_date缺少' - 它是在代码中还是你忘记将它粘贴在这里?
此外,根据运行MySQL的MySQL设置和操作系统,table.column name capitalization中的差异可能会导致问题。您有'产品货件
答案 2 :(得分:0)
您在查询中的聚合函数后错过了逗号。此外,您在选择字段中输入了 sum 的列,这几乎总是错误的。
这应该有效:
select
sum(ps.Amount),
// You forgot the comma after this aggregate function
sh.Arrival_date,
sh.Shipment_ID,
ps.Product_Code,
ps.Shipment_ID
from
`Product shipment` ps
join `shipment` sh
on ps.Shipment_ID=.Product_code
where
Arrival_date = '2014-01-01'
group by
sh.Arrival_date,
sh.Shipment_ID,
ps.Product_Code,
ps.Shipment_ID
另外,你真的应该read this lengthy Q&A that I put together来帮助完全像这样的情况,你的查询有一个你不明白的问题,一些人来帮助 - 虽然这里的答案可能会解决问题(我们希望)你仍然没有真的得到你做错了。