Sql组分别与所有字段连接

时间:2017-09-26 11:07:52

标签: mysql

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

2 个答案:

答案 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;

但是,一般来说,我认为最好在应用程序代码中解决数据显示问题。