Página 1 de 1
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 09:20
por porter
Olá pessoal, essa instrução SQL, soma dois campos em duas tabelas, se as duas tabelas contem valores, está somando corretamente, mas se uma das tabelas, não conter valor, ela retorna NULL como resultado, como faço para retornar um valor, se uma das tabelas não conter nenhum valor ?
SELECT
SUM(R.PAGO+M.VALOR) SOMATORIA
FROM tabela1 R, tabela2 M
WHERE R.RBCODCLI = 1 AND M.CCLIENTE = 1;
MySql
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 14:55
por JoséQuintas
COALESCE() pega o primeiro valor que não seja NULL.
Exemplos:
Código: Selecionar todos
COALESCE( NULL, NULL, 0 )
COALESCE( A.valor, B.Valor, 0 )
COALESCE( A.valor , 0 ) + COALESCE( B.valor, 0 )
COALESCE( A.nome, '' )
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 15:07
por Itamar M. Lins Jr.
Olá!
Não entendi a pergunta, nem a resposta.
Saudações,
Itamar M. Lins Jr.
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 15:10
por Itamar M. Lins Jr.
Olá!
Mudando na estrutura das tabelas para ser NOT NULL ?
Null + 10 = Null é isso ?
Saudações,
Itamar M. Lins Jr.
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 16:48
por JoséQuintas
Não.
Mesmo que mude estrutura, um SELECT pode retornar NULL se for relacionado.
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 16:52
por porter
Olá Itamar, obrigado por sua atenção
Nessa instrução, tenho duas tabelas, serão somados o campo PAGO da tabela1 e o campo VALOR da tabela 2, se as duas tabelas satisfazer a condição, ele soma corretamente, mas se uma das tabelas não satisfizer a condição, ele está retornando NULL, mas deveria retornar um valor, se pelo uma das tabelas satisfizer a condição, entendeu.
SELECT
SUM(R.PAGO+M.VALOR) SOMATORIA
FROM tabela1 R, tabela2 M
WHERE R.RBCODCLI = 1 AND M.CCLIENTE = 1;
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 17:34
por Itamar M. Lins Jr.
Olá!
Saudações,
Itamar M. Lins Jr.
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 18:05
por alxsts
Olá!
porter escreveu:...essa instrução SQL, soma dois campos em duas tabelas, se as duas tabelas...
Não... você está confundindo as coisas. SUM opera apenas em uma tabela. Você pode somar uma coluna (ex: SUM( qtde ) ) ou somar o resultado de uma expressão (ex: SUM( qtde * valor ) ), na mesma tabela.
Para fazer o que você precisa, precisa fazer o SUM em cada tabela e depois somar os dois...
Código: Selecionar todos
SELECT SUM( t.n ) Somatorio
FROM ( SELECT SUM( PAGO ) n
FROM tabela1
WHERE RBCODCLI = 1
UNION ALL
SELECT SUM( valor ) n
FROM tabela2
WHERE CCLIENTE = 1 ) AS t
Outra coisa: SUM ignora valores NULL na expressão. Portanto, não precisa usar Coalesce().
Veja:
MySQL SUM
Select retornando NULL se uma das tabelas, não conter valor
Enviado: 20 Mai 2022 18:13
por Itamar M. Lins Jr.
Olá!
Tava lendo na internet... Mas lá é mais difícil de aprender por conta das perguntas...
Vi assim entre aspas () sem o SUM(). E vi com UNION ALL
Agora esse COALESCE() neste caso não vi com ele se encaixa.
Saudações,
Itamar M. Lins Jr.