【发布时间】:2020-09-29 08:16:42
【问题描述】:
以下是使用 Cash & Card 完成的销售数据输出。有一个新的要求来保存 Cash&Card 交易,其中 CashAmount 和 CardAmount 将被保存以识别不同的金额,如下所示。
Sales Payment_type CashAmount CardAmount
9.00 Card 0.00 0.00
10.00 Cash 0.00 0.00
8.80 Cash_Card 5.00 3.80
9.35 Cash_Card 5.00 4.35
现在在每月销售报表中,我们显示现金、卡、支票交易金额。 Cash&Card transaction 现金金额现在也应该添加到 Cash 列中,并且 Card sales Amount 应该添加到 card 列中。最终输出
Sales Payment_type
17.15 Card
20.00 Cash
select
sum(a.total_amount) as Sales,
b.Payment_type
from
sl_sales_trans_master a
inner join sl_payment_master b on a.payment_type_id = b.payment_type_id
where
a.reading_master_id=@ReadingMasterID
group
by b.Payment_type
你能指导我如何处理这个问题吗?
谢谢。
【问题讨论】:
-
您的查询有什么问题?为什么
CardAmount等于 18.35 对于 10.0 +9.0 的总和? -
抱歉更新卡销售额9+3.8+4.35 = 17.15
-
您的样本数据中的 total_amount 列在哪里?
-
为什么前两行的
CashAmount和CardAmount是0.00? -
@Squirrel - 因为它只提供现金或只提供卡付款。但对于最后 2 行,客户使用现金和卡支付。因此 cashamount 和 cardamount 被保存。
标签: sql sql-server sql-server-2016