Mysql 从一行减去另一行
请帮帮我,我一整天都解决不了这个问题 我有像这样的争吵Mysql 从一行减去另一行,mysql,sql,sql-server,sql-server-2008,tsql,Mysql,Sql,Sql Server,Sql Server 2008,Tsql,请帮帮我,我一整天都解决不了这个问题 我有像这样的争吵 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 Ch
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收入的行,请插入结果行(使用UNION或smth else)。
结果行应从具有相同序列号的另一行中减去一行。所以在我们的例子中
结果表应该类似于
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
我构建了一个小提琴,它将收入计算为+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
以你为例,我认为这是正确的
SQLFIDLE文本到DDL导入是梦幻般的:)您使用的是什么客户端?还是纯sql?我使用sql Management Studio+WPF作为服务器的客户端+Devexpress,所以您可能应该删除mysql标记,然后?MYSQl也有同样的逻辑,我不认为这取决于客户端。