Select retornando NULL se uma das tabelas, não conter valor
Moderador: Moderadores
Select retornando NULL se uma das tabelas, não conter valor
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
SUM(R.PAGO+M.VALOR) SOMATORIA
FROM tabela1 R, tabela2 M
WHERE R.RBCODCLI = 1 AND M.CCLIENTE = 1;
MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Select retornando NULL se uma das tabelas, não conter valor
COALESCE() pega o primeiro valor que não seja NULL.
Exemplos:
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, '' )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Select retornando NULL se uma das tabelas, não conter valor
Olá!
Não entendi a pergunta, nem a resposta.
Saudações,
Itamar M. Lins Jr.
Não entendi a pergunta, nem a resposta.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Select retornando NULL se uma das tabelas, não conter valor
Olá!
Mudando na estrutura das tabelas para ser NOT NULL ?
Null + 10 = Null é isso ?
Saudações,
Itamar M. Lins Jr.
Mudando na estrutura das tabelas para ser NOT NULL ?
Null + 10 = Null é isso ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Select retornando NULL se uma das tabelas, não conter valor
Não.
Mesmo que mude estrutura, um SELECT pode retornar NULL se for relacionado.
Mesmo que mude estrutura, um SELECT pode retornar NULL se for relacionado.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Select retornando NULL se uma das tabelas, não conter valor
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;
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;
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Select retornando NULL se uma das tabelas, não conter valor
Olá!
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
SELECT (R.PAGO + M.VALOR) as SOMATORIA FROM...Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Select retornando NULL se uma das tabelas, não conter valor
Olá!
Para fazer o que você precisa, precisa fazer o SUM em cada tabela e depois somar os dois...
Outra coisa: SUM ignora valores NULL na expressão. Portanto, não precisa usar Coalesce().
Veja: MySQL SUM
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.porter escreveu:...essa instrução SQL, soma dois campos em duas tabelas, se as duas tabelas...
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 tVeja: MySQL SUM
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Select retornando NULL se uma das tabelas, não conter valor
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
