Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql水平显示结果_Mysql_Sql - Fatal编程技术网

mysql水平显示结果

mysql水平显示结果,mysql,sql,Mysql,Sql,我写了一些查询,得到了以下查询结果 createdate SITE1 SITE2 SITE3 SITE4 SITE5 SITE6 SITE7 SITE8 SITE9 10/2/2014 63 NULL NULL NULL NULL NULL NULL NULL NULL 10/2/2014 NULL NULL NULL NULL NULL NULL NULL N

我写了一些查询,得到了以下查询结果

createdate  SITE1   SITE2   SITE3   SITE4   SITE5   SITE6   SITE7   SITE8   SITE9
10/2/2014   63      NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
10/2/2014   NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    10
10/3/2014   21      NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
10/3/2014   NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    4
现在我想这样展示

createdate  SITE1   SITE2   SITE3   SITE4   SITE5   SITE6   SITE7   SITE8   SITE9
10/2/2014   63      NULL    NULL    NULL    NULL    NULL    NULL    NULL    10
10/3/2014   21      NULL    NULL    NULL    NULL    NULL    NULL    NULL    4
注意:我已经对站点名称和createdate进行了分组

你有什么好主意吗?请给我提个建议

enter code here
select alldata.createdate, count(name),
case when name = 'SITE1' then count(1) end AS SITE1,
case when name = 'SITE2' then count(1) end AS SITE2,
case when name = 'SITE3' then count(1) end AS SITE3,
case when name = 'SITE4' then count(1) end AS SITE4,
case when name = 'SITE5' then count(1) end AS SITE5, 
case when name = 'SITE6' then count(1) end AS SITE6,
case when name = 'SITE7' then count(1) end AS SITE7,
case when name = 'SITE8' then count(1) end AS SITE8,
case when name = 'SITE9' then count(1) end AS SITE9,
from 
(
    select total.createdate as createdate ,total.name as name from 
    (
    select distinct dtr.*  , ps.name ,DATE_FORMAT(dt.create_time,'%Y-%m-%d') as createdate  from  di_dtb_task_result  dtr 
    inner join di_dtb_task_data_detail dt
    on dtr.task_id  = dt.task_id and dt.user_id <> 10000001
    left join dtb_user_info ui
    on  ui.id = dt.user_id and dtr.task_id  = dt.task_id
    left join dtb_point_site ps
    on ps.id=ui.user_point_site_id and dtr.task_id  = dt.task_id
    where dtr.status <> 9 
    -- group by  dtr.status ,dtr.task_id , ui.id,ui.user_point_site_id , ps.name
    order by dtr.task_id 
    ) total
    -- group by total.name , total.createdate

) alldata
group by alldata.createdate ,alldata.name
最简单的解决方案:

只需通过sql包装您的sql来添加另一个组

select alldata.createdate, sum(SITE1), sum(SITE2), sum(SITE3), sum(SITE4), sum(SITE5), sum(SITE6), sum(SITE7), sum(SITE8), sum(SITE9)
// inner select
group by alldata.createdate

我想你可能想试试max函数

select createdate, max(site1),max(site2),max(site3),max(site4),max(site5),max(site6),max(site7), max(site8),max(site9) from (..your_inner_query..) group by createdate

这里有一个示例供您参考

请向我们展示您的查询并正确说明您想要做什么,这里似乎您的分组子句有问题,因为创建日期2014年2月10日出现了两次。这意味着在我的情况下它是不正确的。创建日期SITE1 SITE2 SITE3 SITE4 SITE5 SITE6 SITE7 SITE8 SITE9 2014年2月10日73 NULL NULL NULL NULL你能澄清原因吗?都德,它只是将2014年10月2日的所有记录相加。不要逐个站点显示。sqlfiddle中显示的结果就是您要求的结果。怎么了?Pl提供详细信息和细节。bro站点字段为字符串字段。