mysql查询不工作
我正在处理一个连接多个表的查询。下面是代码。 在我将第三行SUMSaleItems_T.qtymajor添加为sales之前,查询工作正常。我收到一条错误消息,上面写着 “字段列表”中的未知列“SaleItems\u T.qtymajor” 我正在尝试建立一个重新订购工作表。非常感谢您的帮助mysql查询不工作,mysql,Mysql,我正在处理一个连接多个表的查询。下面是代码。 在我将第三行SUMSaleItems_T.qtymajor添加为sales之前,查询工作正常。我收到一条错误消息,上面写着 “字段列表”中的未知列“SaleItems\u T.qtymajor” 我正在尝试建立一个重新订购工作表。非常感谢您的帮助 SELECT ProductMaster_T.ProductName_VC AS PGroup, StockMain_T.ItemDescription AS Item, SUM(SaleItems_T.
SELECT ProductMaster_T.ProductName_VC AS PGroup,
StockMain_T.ItemDescription AS Item,
SUM(SaleItems_T.qtymajor) AS sales,
stockbuffers_T.buffer_qty AS BufferQty,
(stkbalance_T.AJ1+stkbalance_T.AR2+stkbalance_T.AD3+stkbalance_T.DX4) AS Stock,
(stkbalance_T.AJ1+stkbalance_T.AR2+stkbalance_T.AD3+stkbalance_T.DX4)-stockbuffers_T.buffer_qty AS Result
FROM ProductMaster_T, StockMain_T, stockbuffers_T, stkbalance_T
WHERE StockMain_T.ItemCode = stockbuffers_T.itemcode
AND
StockMain_T.ItemCode = stkbalance_T.itemid
AND
ProductMaster_T.ProductID = StockMain_T.ProdID
AND
SaleItems_T.ItemID = StockMain_T.ItemCode
ORDER BY
ProductName_VC,ItemDescription ASC
在查询中,您没有在FROM子句中或通过联接引用SaleItems\u t表。在查询中,您没有在FROM子句中或通过联接引用SaleItems\u t表。这就是您的查询错误的地方:
FROM ProductMaster_T, StockMain_T, stockbuffers_T, stkbalance_T
改为:
FROM ProductMaster_T, StockMain_T, stockbuffers_T, stkbalance_T, SaleItems_T
这就是您的查询错误的地方:
FROM ProductMaster_T, StockMain_T, stockbuffers_T, stkbalance_T
改为:
FROM ProductMaster_T, StockMain_T, stockbuffers_T, stkbalance_T, SaleItems_T
请不要投这个票。我把它放在这里只是因为评论空间不适合这么长的评论 你真的应该使用显式连接。。。使用join_条件语法,而不是通过WHERE条件隐式连接,这是一种非常古老的方法。它更好,因为它很难忘记一个条件或一张桌子,就像你所做的那样!这样就不容易出错。它还将在几乎每个查询中使用的连接条件与在各种查询中可能使用的其他条件分开 因此,与其
FROM ProductMaster_T, StockMain_T
WHERE ProductMaster_T.ProductID = StockMain_T.ProdID
写:
FROM ProductMaster_T
JOIN StockMain_T
ON ProductMaster_T.ProductID = StockMain_T.ProdID
使用别名和可选的AS关键字也很好。它使代码更具可读性:
FROM ProductMaster_T AS p
JOIN StockMain_T AS m
ON p.ProductID = m.ProdID
整个查询可以写成:
SELECT
master.ProductName_VC AS PGroup,
main.ItemDescription AS Item,
SUM(items.qtymajor) AS sales,
buf.buffer_qty AS BufferQty,
(bal.AJ1 + bal.AR2 + bal.AD3 + bal.DX4)
AS Stock,
(bal.AJ1 + bal.AR2 + bal.AD3 + bal.DX4) - buf.buffer_qty
AS Result
FROM ProductMaster_T AS master
JOIN StockMain_T AS main
ON master.ProductID = main.ProdID
JOIN stockbuffers_T AS buf
ON main.ItemCode = buf.itemcode
JOIN stkbalance_T AS bal
ON main.ItemCode = bal.itemid
JOIN SaleItems_T AS items
ON items.ItemID = main.ItemCode
ORDER BY
ProductName_VC ASC,
ItemDescription ASC
GROUP BY ??? main.ItemCode ??? --- depends on your tables'
--- relationships
请不要投这个票。我把它放在这里只是因为评论空间不适合这么长的评论 你真的应该使用显式连接。。。使用join_条件语法,而不是通过WHERE条件隐式连接,这是一种非常古老的方法。它更好,因为它很难忘记一个条件或一张桌子,就像你所做的那样!这样就不容易出错。它还将在几乎每个查询中使用的连接条件与在各种查询中可能使用的其他条件分开 因此,与其
FROM ProductMaster_T, StockMain_T
WHERE ProductMaster_T.ProductID = StockMain_T.ProdID
写:
FROM ProductMaster_T
JOIN StockMain_T
ON ProductMaster_T.ProductID = StockMain_T.ProdID
使用别名和可选的AS关键字也很好。它使代码更具可读性:
FROM ProductMaster_T AS p
JOIN StockMain_T AS m
ON p.ProductID = m.ProdID
整个查询可以写成:
SELECT
master.ProductName_VC AS PGroup,
main.ItemDescription AS Item,
SUM(items.qtymajor) AS sales,
buf.buffer_qty AS BufferQty,
(bal.AJ1 + bal.AR2 + bal.AD3 + bal.DX4)
AS Stock,
(bal.AJ1 + bal.AR2 + bal.AD3 + bal.DX4) - buf.buffer_qty
AS Result
FROM ProductMaster_T AS master
JOIN StockMain_T AS main
ON master.ProductID = main.ProdID
JOIN stockbuffers_T AS buf
ON main.ItemCode = buf.itemcode
JOIN stkbalance_T AS bal
ON main.ItemCode = bal.itemid
JOIN SaleItems_T AS items
ON items.ItemID = main.ItemCode
ORDER BY
ProductName_VC ASC,
ItemDescription ASC
GROUP BY ??? main.ItemCode ??? --- depends on your tables'
--- relationships
谢谢,我刚刚加了一句。现在查询正在运行,但只给出一行结果。我总共有3500件商品,如果有,我想显示每件商品的总销售额。@mmdel:Add GROUP BY StockMain\u T.ItemCode,如果您想要每件商品的总和。或按ProductMaster\u T.ProductID分组,以唯一确定项目的为准。@ypercube查询仅显示saleitems表中的项目,而不是所有项目。我该怎么办do@staticbeast,@ypercube,@awerti-对上述内容有何建议comment@mmdel:这是WHERE或JOIN的工作方式。仅当它从两个表中找到相关行时,才会显示数据。将JOIN SaleItems从my Commo/answer更改为LEFT JOIN SaleItems,这样即使SaleItems中不存在相关行也可以显示结果。谢谢,我刚刚添加了这一点。现在查询正在运行,但只给出一行结果。我总共有3500件商品,如果有,我想显示每件商品的总销售额。@mmdel:Add GROUP BY StockMain\u T.ItemCode,如果您想要每件商品的总和。或按ProductMaster\u T.ProductID分组,以唯一确定项目的为准。@ypercube查询仅显示saleitems表中的项目,而不是所有项目。我该怎么办do@staticbeast,@ypercube,@awerti-对上述内容有何建议comment@mmdel:这是WHERE或JOIN的工作方式。仅当它从两个表中找到相关行时,才会显示数据。将JOIN SaleItems从my Commo/answer更改为LEFT JOIN SaleItems,这样即使SaleItems中不存在相关行,也可以显示结果。@A SaleItems的表结构如下:库存、项目、数量主、计量单位、价格。为每个项目添加一行sold@awertisaleItems\u T的表结构如下:库存、物料、数量主、计量单位、价格。每售出一件商品添加一行