Estou fazendo esse SELECT, alguém poderia me ajudar?
Bom estou realizando esse select em duas tabelas e gostaria que o retorno do campo (valortotal) vinhe-se agrupado.
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?
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
Curtidas 0
Melhor post
Emerson Nascimento
05/08/2019
você precisa somar as duas linhas obtidas. assim:
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
GOSTEI 3
Mais Respostas
Kleber Santos
03/08/2019
Bom estou realizando esse select em duas tabelas e gostaria que o retorno do campo (valortotal) vinhe-se agrupado.
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?
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
Kleber Santos
03/08/2019
Bom estou realizando esse select em duas tabelas e gostaria que o retorno do campo (valortotal) vinhe-se agrupado.
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?
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
Gérson
03/08/2019
Bom estou realizando esse select em duas tabelas e gostaria que o retorno do campo (valortotal) vinhe-se agrupado.
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?
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
Isaque
03/08/2019
Bom estou realizando esse select em duas tabelas e gostaria que o retorno do campo (valortotal) vinhe-se agrupado.
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?
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
Isaque
03/08/2019
você precisa somar as duas linhas obtidas. assim:
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