左连接在同一个表上,分析趋势mysql

时间:2017-07-23 07:38:35

标签: sql sql-server

表结构如下

+---------------+---------+---------+
| customer_name |  date   | balance |
+---------------+---------+---------+
| 123           | june 14 |      20 |
| 123           | june 15 |      30 |
| 1234          | june 14 |      30 |
| 12345         | june 16 |      50 |
+---------------+---------+---------+

我想加入同一张桌子,将原始数据设置为2014年,我想分析趋势,看看哪些客户余额与2014年相比没有变化。

例如我想显示以下

+-----------+-----------+-----------+
| custmomer | june14bal | june15bal |
+-----------+-----------+-----------+
| 1234      |        30 |      null |
| 123       |        20 |        30 |
+-----------+-----------+-----------+

我有多个左连接,但似乎无法正常工作。最重要的是从2014年的记录开始我的样本。

当前脚本

with TABLE_DATA as    
(    
select  Customer ,DATE, Balance 
from table   
where dATE in ('30-JUN-2014','30-juN-2015')    
)    
SELECT    
sum(inv1.balance) as year1bal,
suminv2.balance) as year2bal,
customer,
date
from table_datA   inv1 
left  join TABLE_DATA inv2    
on inv1.customer= inv2.customer and inv2.as_of_Date = '30-June-2015'  
group by date, customer

1 个答案:

答案 0 :(得分:0)

你可以在分组后添加having子句:Like:

having sum(inv1.balance) != sum(inv2.balance)

或尝试以下查询

with table2014 as    
(    
select  Customer ,sum(Balance) Balance2014
from tableName 
where dATE ='30-JUN-2014' group by Customer
) 
,Table2015 as
( select  Customer ,sum( Balance) Balance2015
from tableName 
where dATE ='30-juN-2015' group by Customer
)
SELECT    
inv1.customer,Balance2014, Balance2015
from table2014   inv1 
left  join Table2015 inv2    
on inv1.customer= inv2.customer 
--where Balance2014 !=Balance2015