为什么此SQL Server查询未返回预期结果?

Zapp4

我有这张桌子,用来描述交易:

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=12018 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));
DineshDB

尝试这个。

表格架构:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章