我有表venta,这个表有这样的结构:
id can tot fec hor cod_f per_f tdt des com cdv cliente fdc local
1 1 39 07/08/2014 11:36:28 a.m. 2112 GUSTAVO V 0 00003 Gustavo 07/08/2014 xtorr
2 1 59 07/08/2014 11:37:31 a.m. 2222 GUSTAVO V 0 00005 07/08/2014 xtorr
3 2 398 07/08/2014 11:37:35 a.m. 2233 GUSTAVO V 0 00005 07/08/2014 xtorr
4 2 358 07/08/2014 11:38:30 a.m. 3333 GUSTAVO V 0 00007 07/08/2014 xtorr
5 1 259 07/08/2014 11:38:34 a.m. 3113 GUSTAVO V 0 00007 07/08/2014 xtorr
cod_f是库存中商品的代码,可以是该商品的销售件数,tdt是交易的类型。我有5种类型的交易:E,S,V,D和T.
我想做一个多维查询,我有下一个结果。该列应计算当天为该代码进行的E,S,V,D和T类交易的数量。
cod E S V D T
2112 0 0 1 0 0
2222 0 0 1 0 0
2233 0 0 2 0 0
3113 0 0 1 0 0
3333 0 0 2 0 0
此查询必须针对特定日期和特定商店; fdc是截止日期,本地是它的销售地点。然后我想它必须有
where fdc = '07/08/2014' and local = 'xtorr'
提前谢谢。
答案 0 :(得分:2)
您可以使用SUM和IF的组合:
SELECT
cod_f,
SUM(IF(tdt = 'E', can, 0)) AS E,
SUM(IF(tdt = 'S', can, 0)) AS S,
SUM(IF(tdt = 'V', can, 0)) AS V,
SUM(IF(tdt = 'D', can, 0)) AS D,
SUM(IF(tdt = 'T', can, 0)) AS T
FROM venta
WHERE
fdc = '07/08/2014' and local = 'xtorr'
GROUP BY cod_f;
答案 1 :(得分:0)
SELECT cod, count(tdt), tdt
FROM venta
WHERE fdc = '07/08/2014'
AND local = 'xtorr'
GROUP BY tdt, cod
ORDER BY cod, tdt;
然后,这将为您提供每个本地以及特定日期当地的每个鳕鱼和tdt的计数。我的解决方案有一个tdt列来区分该鳕鱼的计数对应于哪个tdt。