需要帮助在 MySQL 中对数据求和
我需要你的帮助来解决我的问题。我想对一些具有相同条件的数据进行求和。
这是我的数据:
Line Model Serial Lot_no Range
1 BO 0001 001A 096x0001-096x0100
1 BO 0002 001A 096x0001-096x0100
1 BO 0101 001A 096x0101-096x0200
1 BO 0202 001A 096X0201-096X0203
我想从上面的数据中获取一些表信息,然后我使用这个查询:
SELECT A.Line, A.Model,
A.Lot_no,B.Lot_Quantity,
IF(RIGHT(A.Range_sampling,4)='0000',10000,
RIGHT(A.Range_sampling,4))-MID(Range_sampling,5,4)+1
AS Merchandise
FROM inspection_report A
LEFT JOIN prod_sch B
ON A.Line= B.Line_Name AND A.Model = B.Model_Code
AND A.Lot_no= CONCAT(LPAD(CAST(B.Lot_No_ AS CHAR),3,'0'),'A')
GROUP BY A.Line, A.Model,A.Range_sampling
然后我得到的结果如下:
Line Model LOt_no Lot_Quantity Merchandise
1 BO 001A 300 100 //from 096X0001-096X0100
1 BO 001A 300 100 //from 096X0101-096X0200
1 BO 001A 300 3 //from 096X0201-096X0203
我应该如何使结果如下:
Line Model Lot_no Lot_Quantity Merchandise
1 BO 001A 300 203
I need your help to solve my problem. I want to SUM
some data which have the same condition.
This my data:
Line Model Serial Lot_no Range
1 BO 0001 001A 096x0001-096x0100
1 BO 0002 001A 096x0001-096x0100
1 BO 0101 001A 096x0101-096x0200
1 BO 0202 001A 096X0201-096X0203
I want to make some table information from the data above, then I'm use this query:
SELECT A.Line, A.Model,
A.Lot_no,B.Lot_Quantity,
IF(RIGHT(A.Range_sampling,4)='0000',10000,
RIGHT(A.Range_sampling,4))-MID(Range_sampling,5,4)+1
AS Merchandise
FROM inspection_report A
LEFT JOIN prod_sch B
ON A.Line= B.Line_Name AND A.Model = B.Model_Code
AND A.Lot_no= CONCAT(LPAD(CAST(B.Lot_No_ AS CHAR),3,'0'),'A')
GROUP BY A.Line, A.Model,A.Range_sampling
Then I get the result Like:
Line Model LOt_no Lot_Quantity Merchandise
1 BO 001A 300 100 //from 096X0001-096X0100
1 BO 001A 300 100 //from 096X0101-096X0200
1 BO 001A 300 3 //from 096X0201-096X0203
How should I do to make the result like:
Line Model Lot_no Lot_Quantity Merchandise
1 BO 001A 300 203
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您想要聚合数据,因此您需要按未求和的所有内容进行分组。您还需要删除 A.Range_sampling 并将其替换为您想要分组的任何衍生字段。 IIRC正确,MySQL不会让你在group by中使用别名。
编辑这可能会更干净一些
Looks like you want to aggregate the data, so you'd need to group by everything that's not being summed. You'll also need to remove the A.Range_sampling and replace it with any derivative fields you want to group by. IIRC correctly, MySQL will not let you use the alias in the group by.
EDIT This might be a little cleaner