如何使用SQL从重复行数据中创建两个不同条件的虚拟列?

时间:2017-09-15 13:29:45

标签: mysqli

我的数据库表有三列:[Date, Client, Value][1]

我想要一个只有三个客户的新桌子 - " Technics"," Metal Inc"," Sunny Day"和两个虚拟总列 - " Price" / 8月," Price" / 2017。

到目前为止我尝试了什么以及我得到了什么:open(_:completionHandler:)

为什么"对于八月"总SUM下一行,但不是新列? 毕竟,我的代码说:SELECT SUM(Value) AS 'For August'。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Union将为您提供行而不是列,对于这种情况,也许您可​​以使用子查询,尝试这样的事情

SELECT                          
t1.Client, SUM(t1.Value) AS 'For 2017', (SELECT SUM(t2.Value)FROM Test GROUP 
BY t2.Client)AS 'For August'
FROM Test AS t1
JOIN Test AS t2
    ON t1.Client = t2.Client
WHERE
t2.Date LIKE '%2017-08%'AND 
            (t2.CLient LIKE '%Technics%' OR t2.CLient LIKE 
            '%Metal Inc%' OR t2.CLient LIKE '%Sunny Day%')
            AND
(t1.CLient LIKE '%Technics%'
  OR t1.CLient LIKE '%Metal Inc%'
  OR t1.CLient LIKE '%Sunny Day%')
GROUP BY t1.Client