Fórum Estou fazendo esse SELECT, alguém poderia me ajudar? #604198
03/08/2019
0
Do jeito que estou fazendo ele retorna o valor só que em duas linhas.
SELECT SUM( A.VALORTOTAL )
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
UNION
SELECT SUM( A.VALORTOTAL )
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
Alguém pode me ajudar?
Isaque
Curtir tópico
+ 0Post mais votado
05/08/2019
SELECT SUM(TOTAL) TOTALGERAL FROM ( SELECT SUM(VALORTOTAL) TOTAL FROM CO_CONTRATOFATURAMENTO WHERE DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1,0 ) AND NOT DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0) AND NOT STATUS = 6 UNION ALL SELECT SUM(VALORTOTAL) FROM FT_ARMAZENAGEM WHERE DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 ) AND NOT DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 ) AND TIPO NOT IN (2,3) ) TAB
Emerson Nascimento
Gostei + 3
Mais Posts
04/08/2019
Kleber Santos
Do jeito que estou fazendo ele retorna o valor só que em duas linhas.
SELECT SUM( A.VALORTOTAL )
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
UNION
SELECT SUM( A.VALORTOTAL )
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
Alguém pode me ajudar?
SELECT (TABELA_CONTRATO.SOMACONTRATO (troque por sinal de mais) TABELA_ARMAZENAGEM.SOMAARMAZENAGEM) AS TOTAL
FROM (
SELECT SUM( A.VALORTOTAL ) AS SOMACONTRATO
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
) TABELA_CONTRATO,
(SELECT SUM( A.VALORTOTAL ) AS SOMAARMAZENAGEM
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
) TABELA_ARMAZENAGEM
WHERE 1=1+
Eu não domino o UNION, veja se dessa forma vai apresentar uma soma correta
Gostei + 1
04/08/2019
Kleber Santos
Do jeito que estou fazendo ele retorna o valor só que em duas linhas.
SELECT SUM( A.VALORTOTAL )
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
UNION
SELECT SUM( A.VALORTOTAL )
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
Alguém pode me ajudar?
Tente também adicionar um GROUP BY no final desses UNION
Gostei + 0
04/08/2019
Gérson
Do jeito que estou fazendo ele retorna o valor só que em duas linhas.
SELECT SUM( A.VALORTOTAL )
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
UNION
SELECT SUM( A.VALORTOTAL )
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
Alguém pode me ajudar?
Tem como descrever melhor
Onde esta buscando os dados?
Como espera o resultado na saída?
Para que possa ficar mais claro, de como lhe ajudar.
Gostei + 0
05/08/2019
Isaque
Do jeito que estou fazendo ele retorna o valor só que em duas linhas.
SELECT SUM( A.VALORTOTAL )
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
UNION
SELECT SUM( A.VALORTOTAL )
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
Alguém pode me ajudar?
SELECT (TABELA_CONTRATO.SOMACONTRATO (troque por sinal de mais) TABELA_ARMAZENAGEM.SOMAARMAZENAGEM) AS TOTAL
FROM (
SELECT SUM( A.VALORTOTAL ) AS SOMACONTRATO
FROM CO_CONTRATOFATURAMENTO A
WHERE A.DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)
AND NOT A.STATUS = 6
) TABELA_CONTRATO,
(SELECT SUM( A.VALORTOTAL ) AS SOMAARMAZENAGEM
FROM FT_ARMAZENAGEM A
WHERE A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 )
AND NOT A.DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 )
AND A.TIPO NOT IN (2,3)
) TABELA_ARMAZENAGEM
WHERE 1=1+
Eu não domino o UNION, veja se dessa forma vai apresentar uma soma correta
Testei e funcionou corretamente, ele retornou com a soma das duas tabelas em apenas uma linha, Muito obrigado!
Gostei + 0
05/08/2019
Isaque
SELECT SUM(TOTAL) TOTALGERAL FROM ( SELECT SUM(VALORTOTAL) TOTAL FROM CO_CONTRATOFATURAMENTO WHERE DATA >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1,0 ) AND NOT DATA >= DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0) AND NOT STATUS = 6 UNION ALL SELECT SUM(VALORTOTAL) FROM FT_ARMAZENAGEM WHERE DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1,0 ) AND NOT DATAFECHAMENTO >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -0,0 ) AND TIPO NOT IN (2,3) ) TAB
Muito obrigado, funcionou corretamente.
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)