0

我在 SQL Server 中创建了这个现金表,我需要知道什么是纸币类型,什么是货币编号和总数。

1 = Amount Came
2 = Amount Gone

我期待通过对 SQL 查询进行分组来获得结果。表示如果我有 1000 种货币并且货币票据的总数为 11 [认为来/给定为“1”],则总共为 11000

同样,我有一张 20 纸币 [即 1 In 和 1 Given],因此它不应该出现在所需的输出中,因为没有匹配或我没有任何 20 纸币。因为我有一张 20 纸币并给出返回 20

预期输出是

Currency No of Currency Total
1000 -- 11 - 11000
500  -- 1 -- 500
100 -- 1 - 100
50 -- 1 - 50

在此处输入图像描述

4

1 回答 1

1
create table currency(curr int,noc int,total int,cg int)

insert into currency 
Values(1000,10,10000,1),(1000,1,1000,1),(500,1,500,1),(100,1,100,1),(50,1,50,1),(20,1,20,1),(10,1,10,1),
(5,1,5,1),(2,1,2,1),(1,1,1,1),(20,1,20,2),(10,1,10,2),(5,1,5,2),(2,1,2,2),(1,1,1,2)


select a.curr,count(*),SUM(Total)
FROM
(
select x.curr curr,x.[no of currency],(x.curr*x.[no of currency]) as Total
From
(select a.curr,a.noc-isnull(b.noc,0) as [no of currency] from 

(select * from currency where cg=1) a

left join

(select * from currency where cg=2) b
on a.curr=b.curr
) x
) a
where a.[no of currency] <>0
group by curr
于 2012-12-12T10:17:37.450 回答