Bellow是我的mysql表结构,我想要像最后一个表格格式的结果。 请给我或提示我这个SQL查询或解决方案。
我尝试了一些群组或订单查询,但没有看到它。
tbl_id sub_id num1 num2 date
2 6 100 0 2017-09-21
3 6 0 1000 2017-09-20
其实我想要
sub_id num1 num1-date num2 num2-date
6 100 2017-09-21 1000 2017-09-20
答案 0 :(得分:0)
你的问题不是很清楚。
根据我的理解,这是你可以尝试的东西:
SELECT sub_id,num1,date AS num1-date FROM yourtable
INNER JOIN (SELECT num2, date AS num2-date from yourtable WHERE num2>0) USING(sub_id)
WHERE num1>0;
这将为每个sub_id加上正数num1和date1与正数num2和date2。
此解决方案假设每个sub_id只有一个带有正数num1的条目和一个带有正数num2的条目。
答案 1 :(得分:0)
E.g:
SELECT x.sub_id
, MAX(x.num1) num1
, MAX(CASE WHEN x.num1 <> 0 THEN x.date END) num1_date
, MAX(x.num2) num2
, MAX(CASE WHEN x.num2 <> 0 THEN x.date END) num2_date
FROM my_table x
GROUP
BY x.sub_id;
但是,一般来说,我认为最好在应用程序代码中解决数据显示问题。