在CakePHP中找到不同的数量

时间:2013-09-28 10:15:59

标签: sql cakephp-2.0

这是一个简单的查询问题。但似乎我无法做到正确:( 我上周刚开始使用cakephp。我还在玩探索。无论如何,这是我的问题。

这是Model中的关系:产品有很多库存。库存属于产品。

这是示例STOCKS表:


ID  |  Product Name  |  Transaction
------------------------------------
1   |  Astringent    |  Purchase
2   |  Glutathione   |  Sales
3   |  Glutathione   |  Sales

我想从STOCKS表中获取每个产品的交易数量。

这是我想要的具有不同产品名称的输出:


Transaction   |  Astringent  |  Glutathione
--------------------------------------------
purchase      |  1           |  0
sales         |  0           |  2

1 个答案:

答案 0 :(得分:0)

这是一个sql查询 - 完全你要求的内容。

SELECT transaction,
SUM(
CASE
  WHEN product_name = 'Astringent' THEN 1
  ELSE 0
END) AS 'Astringent',
SUM(
CASE
  WHEN product_name = 'Glutathione' THEN 1
  ELSE 0
END) AS 'Glutathione'
FROM stock
GROUP BY transaction;

但是,您是否正在寻找一个数据透视表,即基于随机数量的产品具有可变数量列的输出?如果是这样,您的解决方案作为MySQL查询会更复杂,并且作为MySQL和PHP解决方案可能不那么复杂。在任何一种情况下,我认为您应该共享更多的数据库模式/ CakePHP模型以及一些控制器信息。只要您希望Cakephp输出此格式,使用此表呈现视图并不会太困难。