我想知道是否有人可以帮我解决这个问题,我曾经做过很多事情,例如使用工会查询,但我认为我在寻找错误的地方。 我正在尝试在单个表上运行SQL查询,以便向用户提供仅发现总销售额的datareader权限。
表格本身包含数据库中类型为1或3的销售和退款。
表示例结构:
Reference TransactionType StockCode Value
Sale01 1 Bat1 10
Sale01 1 Bat1 10
Sale09 1 Ball1 3
Sale15 1 Shin1 50
Sale16 1 Bat1 10
Refund06 3 Bat1 10
我需要获得的是股票的总价值,其中退款总额从总金额中扣除,以便显示为:
StockCode TotalSales
Bat1 20
Ball1 3
Shin1 50
这意味着我必须在一列下进行计算: 选择(如果type为1则sum(value) - (如果type为3则sum(value)
老实说,我根本做不到!我曾尝试使用临时表等,但它完全让我难过。答案 0 :(得分:2)
你去吧
SELECT StockCode,
SUM( (CASE WHEN TransactionType = 3 THEN -1 ELSE 1 END) * Value)
FROM yourtable
GROUP BY StockCode