2014-03-14 21 views
1

请帮我减去一排,我并不能解决这个问题了一整天 我有一个像从另一个

Id Serial StockCode StockTitle ActionType 
1 123  D-005  Desk  Income  
2 345  C-005  Chair  Income  
3 123  D-005  Desk  Expense  
4 685  C-005  Chair  Expense  
5 345  C-005  Chair  Expense  

行的任务是是否有与操作类型,收入的行来计算股票连续平衡,插入一个结果行(使用UNION或其他)。 结果行应使用相同的序列号从另一行中减去一行。因此,在我们的例子中 结果表应该是这个样子

Id Serial StockCode StockTitle ActionType 
1 123  D-005  Desk  Income  
2 345  C-005  Chair  Income  
3 123  D-005  Desk  Expense  
4 685  C-005  Chair  Expense  
5 345  C-005  Chair  Expense 
___________________________________________ 
* 685  C-005  Chair  Balance 

The 
+0

什么客户端您使用的?或者它是纯粹的SQL? – hd1

+1

我使用SQL Management Studio + WPF作为客户端+ Devexpress服务器 –

+1

,所以你应该删除mysql标签,然后......? –

回答

1

我建立了一个计数的收入为+1和费用为-1,并为您提供每个序列号总数小提琴。内置MySQL,但看起来很通用。

Select sum(IF(ActionType = 'Income', 1, -1)) as Balance, 
Serial, StockCode, StockTitle 
from Table1 
GROUP BY serial; 

COUNT SERIAL STOCKCODE STOCKTITLE 
0   123 D-005   Desk 
0   345 C-005   Chair 
-1   685 C-005   Chair 

这一点我觉得给出正确的例子结束。

http://sqlfiddle.com/#!2/ce8e0/1 sqlfiddle文本到DDL进口是梦幻般的:)