0

我有一个 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 中执行此操作

4

0 回答 0