查询以汇总一些值

时间:2014-02-14 14:19:45

标签: mysql

我有一个用于搜索的简单查询。我的问题是这个查询是因为每次有事务时都会添加mysql中的记录,当只有一行或几行而不是更多行时,查询会返回一个数据列表。

SQLFliddle

正如你在这里看到的那样 - 查询会返回很多行,我希望它返回

BLSH103  A001A  31  24/01/2014

可以将产品名称和产品名称放在哪里托盘空间是一样的总结?然后显示最大的日期?

2 个答案:

答案 0 :(得分:2)

只需在t.Quantity(和group by子句)上使用sum函数

SELECT  (t.ProductName) as Pname ,(s.PalletSpace) as PSpace, sum(t.Quantity) as Qty,(t.TransactionDate) as Transac
  FROM PalletSpaces s
  JOIN ProductTrans t
   ON s.PalletSpaceID = t.PalletSpace
 WHERE t.ProductName LIKE 'BLSH103' OR s.PalletSpace LIKE 'BLSH103'
group by 
 Pname, 
 pSpace, 
 Transac -- if you want to group by date also...

顺便说一下,以这种方式使用LIKE(没有%)没有多大意义......

请参阅SqlFiddle

答案 1 :(得分:0)

您只需要以这种方式使用GROUP BY和SUM:

SELECT  (t.ProductName) as Pname ,(s.PalletSpace) as PSpace, SUM(t.Quantity) as Qty,(t.TransactionDate) as Transac
  FROM PalletSpaces s
  JOIN ProductTrans t
   ON s.PalletSpaceID = t.PalletSpace
 WHERE t.ProductName LIKE 'BLSH103' OR s.PalletSpace LIKE 'BLSH103'
GROUP BY t.ProductName, s.PalletSpace;