请帮助我,我一整天都无法解决这个问题 我有像
这样的行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
如果存在具有ActionType-Income的行,则插入结果行(使用UNION或其他),任务是计算股票序列平衡。 结果行应使用相同的Serial从另一行中减去一行。所以在我们的案例中 结果表应该看起来像
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 :(得分: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 text-to-DDL导入是梦幻般的:)