Não Traz dados
Faço essa consulta mas quando executo vem em branco
SELECT gb_produtotratamento.IdCustoTartamento, gb_custotratamento.DateTratamento, gb_produtotratamento.idGrupo, gb_grupo.Descricao AS 'DescriçãoG', gb_produtotratamento.IdSubGrupo, gb_subgrupo.Descricao AS 'Descrição do Subgrupo', gb_produtotratamento.Produto, gb_produto.DESCRICAO AS 'Descrição do Produto', gb_produtotratamento.M3, gb_produtotratamento.Quantidade, gb_produtotratamento.Subtotal FROM ((((gb_custotratamento INNER JOIN gb_produtotratamento ON(gb_custotratamento.idCustoTratamento=gb_produtotratamento.IdCustoTartamento) INNER JOIN gb_grupo ON(gb_produtotratamento.idGrupo=gb_grupo.IdGrupo) INNER JOIN gb_subgrupo ON(gb_produtotratamento.IdSubGrupo=gb_subgrupo.IdSubGrupo) INNER JOIN gb_produto ON(gb_produtotratamento.Produto=gb_produto.IdProduto))))) WHERE DateTratamento BETWEEN :dti AND :dtf
Salomao.coelho
Curtidas 0
Respostas
Emerson Nascimento
08/09/2022
há dados em todas as tabelas envolvidas?
como você usou INNER JOIN, se não houver informação (baseada no relacionamento) em qualquer das tabelas, não haverá retorno de dados.
como você usou INNER JOIN, se não houver informação (baseada no relacionamento) em qualquer das tabelas, não haverá retorno de dados.
GOSTEI 0
Salomao.coelho
08/09/2022
há dados em todas as tabelas envolvidas?
como você usou INNER JOIN, se não houver informação (baseada no relacionamento) em qualquer das tabelas, não haverá retorno de dados.
sim ha dados em todas as tabelas
como você usou INNER JOIN, se não houver informação (baseada no relacionamento) em qualquer das tabelas, não haverá retorno de dados.
GOSTEI 0
Emerson Nascimento
08/09/2022
SELECT prodtrat.IdCustoTartamento, custo.DateTratamento, prodtrat.idGrupo, gb_grupo.Descricao AS 'DescriçãoG', prodtrat.IdSubGrupo, sgrupo.Descricao AS 'Descrição do Subgrupo', prodtrat.Produto, prod.DESCRICAO AS 'Descrição do Produto', prodtrat.M3, prodtrat.Quantidade, prodtrat.Subtotal FROM gb_custotratamento custo LEFT JOIN gb_produtotratamento prodtrat ON prodtrat.IdCustoTartamento = custo.idCustoTratamento LEFT JOIN gb_grupo ON gb_grupo.IdGrupo = prodtrat.idGrupo LEFT JOIN gb_subgrupo sgrupo ON sgrupo.IdSubGrupo = prodtrat.IdSubGrupo LEFT JOIN gb_produto prod ON prod.IdProduto = prodtrat.Produto WHERE custo.DateTratamento BETWEEN :dti AND :dtf
note que eu troquei todos os INNER JOIN por LEFT JOIN.
execute a consulta assim.
se retornar NÃO retornar dados, há um problema na condição da consulta (WHERE).
se retornar dados, então vá trocando os LEFT por INNER, um de cada vez e executando a consulta após a troca.
Entendeu o esquema? Troque um LEFT por INNER e execute. Quando não retornar dados você terá encontrado a tabela/relacionamento problemático.
GOSTEI 0
Salomao.coelho
08/09/2022
SELECT prodtrat.IdCustoTartamento, custo.DateTratamento, prodtrat.idGrupo, gb_grupo.Descricao AS ''DescriçãoG'', prodtrat.IdSubGrupo, sgrupo.Descricao AS ''Descrição do Subgrupo'', prodtrat.Produto, prod.DESCRICAO AS ''Descrição do Produto'', prodtrat.M3, prodtrat.Quantidade, prodtrat.Subtotal FROM gb_custotratamento custo LEFT JOIN gb_produtotratamento prodtrat ON prodtrat.IdCustoTartamento = custo.idCustoTratamento LEFT JOIN gb_grupo ON gb_grupo.IdGrupo = prodtrat.idGrupo LEFT JOIN gb_subgrupo sgrupo ON sgrupo.IdSubGrupo = prodtrat.IdSubGrupo LEFT JOIN gb_produto prod ON prod.IdProduto = prodtrat.Produto WHERE custo.DateTratamento BETWEEN :dti AND :dtf
note que eu troquei todos os INNER JOIN por LEFT JOIN.
execute a consulta assim.
se retornar NÃO retornar dados, há um problema na condição da consulta (WHERE).
se retornar dados, então vá trocando os LEFT por INNER, um de cada vez e executando a consulta após a troca.
Entendeu o esquema? Troque um LEFT por INNER e execute. Quando não retornar dados você terá encontrado a tabela/relacionamento problemático.
GOSTEI 0
Salomao.coelho
08/09/2022
SELECT prodtrat.IdCustoTartamento, custo.DateTratamento, prodtrat.idGrupo, gb_grupo.Descricao AS ''DescriçãoG'', prodtrat.IdSubGrupo, sgrupo.Descricao AS ''Descrição do Subgrupo'', prodtrat.Produto, prod.DESCRICAO AS ''Descrição do Produto'', prodtrat.M3, prodtrat.Quantidade, prodtrat.Subtotal FROM gb_custotratamento custo LEFT JOIN gb_produtotratamento prodtrat ON prodtrat.IdCustoTartamento = custo.idCustoTratamento LEFT JOIN gb_grupo ON gb_grupo.IdGrupo = prodtrat.idGrupo LEFT JOIN gb_subgrupo sgrupo ON sgrupo.IdSubGrupo = prodtrat.IdSubGrupo LEFT JOIN gb_produto prod ON prod.IdProduto = prodtrat.Produto WHERE custo.DateTratamento BETWEEN :dti AND :dtf
note que eu troquei todos os INNER JOIN por LEFT JOIN.
execute a consulta assim.
se retornar NÃO retornar dados, há um problema na condição da consulta (WHERE).
se retornar dados, então vá trocando os LEFT por INNER, um de cada vez e executando a consulta após a troca.
Entendeu o esquema? Troque um LEFT por INNER e execute. Quando não retornar dados você terá encontrado a tabela/relacionamento problemático.
RESOLVIDO - era a Where os dados chegavam no formato dd/mm/yyyy e o Babco de dados não reconhecia tive que criar Format('yyyy-mm-dd', campo)
GOSTEI 0