Problema com query

1 resposta Resolvido
Fabio_Dos_Reis

Bom dia meus bons, sei que aqui no Guj tem tópicos com resolução de problemas com querys mas não conseguir resolver meu caso olhando alguns tópicos.

Estou com um problema ao gerar um relatório que pode ter várias condições, se trata de uma tela que o usuário escolhe o filtro para gerar e fazer o relatório, esse relatório se trata de projetos cadastrados no sistema e movimentações financeiras para esses projetos.

Basicamente a query é essa:

SELECT  
pj.nome as 'Projeto', 
m.valor AS 'Valor',
DATE_FORMAT(STR_TO_DATE(pj.data, '%Y-%m-%d'), '%d/%m/%Y') AS 'Data de Cadastro do Projeto',
DATE_FORMAT(STR_TO_DATE(m.data, '%Y-%m-%d'), '%d/%m/%Y') AS 'Data de Entrada',      				
pj.cliente AS 'Razão Social',    				
pj.porcentagem AS 'Percentual',
pj.municipio AS 'Cidade',
pj.estado AS 'Estado',
p.nome AS 'Produto',
u.nome AS 'Unidade',
(SELECT DISTINCT nome FROM usuario WHERE idUsuario = pj.idExecutor) AS 'Executor', 
m.status AS 'Situação' 
FROM pboffice.projeto AS pj 
JOIN pboffice.produto AS p 
ON p.idProduto = pj.idProduto 
JOIN usuario AS u  
ON u.idUsuario = pj.idUnidade   				
queryJoin                                       <- variável
ON m.idProjeto = pj.idProjeto 
WHERE 1=1

//mais giltros com where

No relatório quando o usuário quer relatório de projetos independente se teve movimentação financeira nele ou não eu troco a variável “queryJoin” por 'LEFT JOIN movimento AS m ', se o usuário quiser relatório onde só exista movimentação financeira eu troco a variável “queryJoin” por "JOIN movimento AS m "

Oque eu não sei é como buscar as informações quando o usuário quiser relatório somente de projetos onde não exista movimentação financeiras sem fazer outra query, alguém tem uma dica de como fazer?

Agradeço.

1 Resposta

Fabio_Dos_Reis
Solucao aceita

acho que resolvi, Quando o usuário escolher o relatório de projetos sem valores é só da o LEFT JOIN e colocar no where do SELECT m.valor IS NULL;

Criado 20 de agosto de 2019
Ultima resposta 20 de ago. de 2019
Respostas 1
Participantes 1