一直试图将一个将查询数据排序为财务年度(我已排序)的SQL查询,然后根据claim_id列中的每个不同值对其进行求和。不同行的SQL SUM ....我卡住了!
表结构为:claim(id,claim_id,日期,金额)
SQL至今:
SELECT
CASE
WHEN MONTH(date)>=4 THEN
concat(YEAR(date), '-',YEAR(date)+1)
ELSE
concat(YEAR(date)-1,'-', YEAR(date))
END AS fyear,
SUM(amount) AS total, claim_id
FROM claim
GROUP BY fyear, claim_id
ORDER BY claim_id ASC, date ASC
目前我得到这个
Array
(
[fyear] => 2009-2010
[total] => 567.89
[claim_id] => 1
)
这是非常接近,只是因为GROUP BY的当然claim_id我得到另一个数组为每个不同的claim_id:
Array
(
[fyear] => 2009-2010
[total] => 106.76
[claim_id] => 2
)
什么其实我喜欢的是:
Array
(
[fyear] => 2009-2010
[total1] => 567.89
[total2] => 106.76
)
任何建议请?
谢谢!
尝试清理SQL语句格式。 4个空格缩进代码。 – 2010-07-04 15:31:07
为什么你真的需要它在列上?在行中有数据有什么问题!? – 2010-07-04 15:41:08
因为我想要动态填充表,表中的每一行都有日期,则总共为每个不同的claim_id列。如果数据从SQL中排出一行,只需加载使用php更容易构建表。除非有更好的方式来做到这一点,我错过了...... – James 2010-07-04 15:48:47