我有一个 EAV 表,我的数据在其中
stageid, value, row
1 rob 1
2 01/01/2012 1
3 2000 1
1 Ben 2
2 ......... and so on
我必须将这些数据转置/转置为可用格式,例如三列表
可怕的查询是
SELECT pearson,
Date_format(a.salesdate, '%Y-%m-01') AS monthYear,
Count(1)
FROM (SELECT row,
Group_concat(IF(stageid = 74, value, NULL)) AS 'pearson',
Group_concat(IF(stageid = 59, Str_to_date(value, '%d/%m/%Y'), NULL)) AS 'salesdate',
Group_concat(IF(stageid= 67, value, NULL)) AS 'salescount'
FROM stagingdata
GROUP BY row) AS a
WHERE a.pearson IS NOT NULL
AND a.pearson != ''
AND Year(a.salesdate) IN ( '2012', '2011' )
GROUP BY Trim(Lower(a.pearson)),
Date_format(a.salesdate, '%Y-%m')
HAVING Count(1) > 10
ORDER BY pearson, a.salesdate ASC
我得到这个结果
Person, Date, Sales
Rob 2012-01-01 2000
Ben 2012-01-01 500
Ben 2012-03-01 300
Rob 2012-05-01 2000
我想使用 NVD3 创建一个堆积面积图,但是您可以看到日期列中的数据未对齐 - 我想我需要对数据进行插值 - 但我不知道怎么做!
所以我的数据应该看起来像
Person, Date, Sales
Rob 2012-01-01 2000
Ben 2012-01-01 500
Ben 2012-03-01 300
Rob 2012-03-01 0
Rob 2012-05-01 2000
Rob 2012-05-01 0
我在我的查询中这样做吗?在 PHP < 最好不要!因为我希望我的 3 柱形图 php 到 json 创建器尽可能通用 - 或者你可以在 NVD3 或 D3 中执行此操作