我有这张桌子,用来描述交易:
noconta |numerario|dataefectivacao |datarealizacao |tipomov|descricao |
-----------|---------|-------------------|-------------------|-------|----------------------------------------------------|
11111111111| 58|2018-10-26 00:00:00|2018-10-24 00:00:00| 0|Movimento Genérico 6-1 (Não Dezembro 2018) (Crédito)|
11111111111| 11|2018-12-27 00:00:00|2018-10-25 00:00:00| 1|Movimento Genérico 7-1 (Não Dezembro 2018) (Débito) |
11111111111| 24|2018-12-14 00:00:00|2018-12-12 00:00:00| 0|Movimento Genérico 1-1 (Crédito) |
11111111111| 42|2018-12-16 00:00:00|2018-12-13 00:00:00| 0|Movimento Genérico 2-1 (Crédito) |
11111111111| 44|2018-12-17 00:00:00|2018-12-14 00:00:00| 1|Movimento Genérico 4-1 (Débito) |
11111111111| 31|2018-12-15 00:00:00|2018-12-18 00:00:00| 1|Movimento Genérico 5-1 (Débito) |
11111111111| 55|2018-12-22 00:00:00|2018-12-19 00:00:00| 0|Movimento Genérico 3-1 (Crédito) |
22222222222| 45|2018-10-24 00:00:00|2018-10-22 00:00:00| 0|Movimento Genérico 6-2 (Não Dezembro 2018) (Crédito)|
22222222222| 241|2018-12-12 00:00:00|2018-12-10 00:00:00| 0|Movimento Genérico 1-2 (Crédito) |
22222222222| 12|2018-12-14 00:00:00|2018-12-11 00:00:00| 0|Movimento Genérico 2-2 (Crédito) |
22222222222| 35|2018-12-15 00:00:00|2018-12-12 00:00:00| 1|Movimento Genérico 4-2 (Débito) |
22222222222| 22|2018-12-16 00:00:00|2018-12-13 00:00:00| 1|Movimento Genérico 5-2 (Débito) |
22222222222| 31|2018-12-20 00:00:00|2018-12-17 00:00:00| 0|Movimento Genérico 3-2 (Crédito) |
22222222222| 23|2018-10-25 00:00:00|2018-12-23 00:00:00| 1|Movimento Genérico 7-2 (Não Dezembro 2018) (Débito) |
33333333333| 51|2018-10-22 00:00:00|2018-10-20 00:00:00| 0|Movimento Genérico 6-3 (Não Dezembro 2018) (Crédito)|
33333333333| 241|2018-12-09 00:00:00|2018-12-07 00:00:00| 0|Movimento Genérico 1-3 (Crédito) |
33333333333| 15|2018-12-13 00:00:00|2018-12-10 00:00:00| 1|Movimento Genérico 4-3 (Débito) |
33333333333| 41|2018-12-14 00:00:00|2018-12-11 00:00:00| 1|Movimento Genérico 5-3 (Débito) |
33333333333| 92|2018-10-23 00:00:00|2018-12-21 00:00:00| 1|Movimento Genérico 7-3 (Não Dezembro 2018) (Débito) |
如何将一个写打算返回账户号码(“noconta”)该查询numerario的SUM(该帐户)大于信贷(tipomov=0
)比借记(tipomov=1
2018 12月)?
这是我的尝试。尽管它不会引发任何错误,但结果为空(很容易检查,在给定的示例中情况并非如此)。实际上,它是空的,与检查较大,相等或较小的和无关。
SELECT noconta
FROM MOVIMENTO
WHERE ((SELECT YEAR(datarealizacao)) = 2018
AND (SELECT MONTH (datarealizacao))= 12)
GROUP BY noconta, tipomov
HAVING ((SELECT SUM(numerario) WHERE tipomov = 0) > (SELECT SUM(numerario) WHERE tipomov = 1));
尝试这个。
表格架构:
CREATE TABLE #MOVIMENTO (noconta BIGINT,numerario INT, dataefectivacao DATETIME,datarealizacao DATETIME,tipomov INT,descricao NVARCHAR(1000))
INSERT INTO #MOVIMENTO VALUES('11111111111','58','2018-10-26 00:00:00','2018-10-24 00:00:00','0','Movimento Genérico 6-1 (Não Dezembro 2018) (Crédito)')
INSERT INTO #MOVIMENTO VALUES('11111111111','11','2018-12-27 00:00:00','2018-10-25 00:00:00','1','Movimento Genérico 7-1 (Não Dezembro 2018) (Débito) ')
INSERT INTO #MOVIMENTO VALUES('11111111111','24','2018-12-14 00:00:00','2018-12-12 00:00:00','0','Movimento Genérico 1-1 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('11111111111','42','2018-12-16 00:00:00','2018-12-13 00:00:00','0','Movimento Genérico 2-1 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('11111111111','44','2018-12-17 00:00:00','2018-12-14 00:00:00','1','Movimento Genérico 4-1 (Débito) ')
INSERT INTO #MOVIMENTO VALUES('11111111111','31','2018-12-15 00:00:00','2018-12-18 00:00:00','1','Movimento Genérico 5-1 (Débito) ')
INSERT INTO #MOVIMENTO VALUES('11111111111','55','2018-12-22 00:00:00','2018-12-19 00:00:00','0','Movimento Genérico 3-1 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('22222222222','45','2018-10-24 00:00:00','2018-10-22 00:00:00','0','Movimento Genérico 6-2 (Não Dezembro 2018) (Crédito)')
INSERT INTO #MOVIMENTO VALUES('22222222222','241','2018-12-12 00:00:00','2018-12-10 00:00:00','0','Movimento Genérico 1-2 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('22222222222','12','2018-12-14 00:00:00','2018-12-11 00:00:00','0','Movimento Genérico 2-2 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('22222222222','35','2018-12-15 00:00:00','2018-12-12 00:00:00','1','Movimento Genérico 4-2 (Débito) ')
INSERT INTO #MOVIMENTO VALUES('22222222222','22','2018-12-16 00:00:00','2018-12-13 00:00:00','1','Movimento Genérico 5-2 (Débito) ')
INSERT INTO #MOVIMENTO VALUES('22222222222','31','2018-12-20 00:00:00','2018-12-17 00:00:00','0','Movimento Genérico 3-2 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('22222222222','23','2018-10-25 00:00:00','2018-12-23 00:00:00','1','Movimento Genérico 7-2 (Não Dezembro 2018) (Débito)')
INSERT INTO #MOVIMENTO VALUES('33333333333','51','2018-10-22 00:00:00','2018-10-20 00:00:00','0','Movimento Genérico 6-3 (Não Dezembro 2018) (Crédito)')
INSERT INTO #MOVIMENTO VALUES('33333333333','241','2018-12-09 00:00:00','2018-12-07 00:00:00','0','Movimento Genérico 1-3 (Crédito)')
INSERT INTO #MOVIMENTO VALUES('33333333333','15','2018-12-13 00:00:00','2018-12-10 00:00:00','1','Movimento Genérico 4-3 (Débito)')
INSERT INTO #MOVIMENTO VALUES('33333333333','41','2018-12-14 00:00:00','2018-12-11 00:00:00','1','Movimento Genérico 5-3 (Débito)')
INSERT INTO #MOVIMENTO VALUES('33333333333','92','2018-10-23 00:00:00','2018-12-21 00:00:00','1','Movimento Genérico 7-3 (Não Dezembro 2018) (Débito)')
TSQL查询:
SELECT noconta
FROM #MOVIMENTO
WHERE '2018-12-01' <= datarealizacao and datarealizacao < '2019-01-01'
GROUP BY noconta
HAVING SUM(CASE WHEN tipomov = 0 THEN numerario END)>SUM(CASE WHEN tipomov = 1 THEN numerario END)
输出:
noconta
11111111111
22222222222
33333333333
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句