Página 1 de 1
SQL Vendidos x não Vendidos
Enviado: Sex, 17 Fev 2017 4:10 pm
por pssgyn
Pessoal, boa tarde. Sou iniciante no fórum e também em SQL.
tenho as seguintes tabelas com os seguintes campos (apenas os que vão fazer parte da consulta) :
Selecionar tudo
PRODUTO - codprod
usuprod - Se for R é produto para revenda
ativo - pode ser S ou N.
ITEM - codprod
datavenda
qtde
ESTOQUE - codprod
estoque
Preciso fazer uma consulta que traga os produtos vendidos e não vendidos num determinado periodo , que estejam ativos e que sejam de revenda no cadastro de produtos e que o estoque seja maior que zero. A consulta não é para trazer produto a produto, mas sim os totais vendidos e não vendidos.
Estou ainda no processo de aprendizado de SQL, e todas minhas tentativas, ou esbarram em erro na codificação do SQL, ou quando executa, não traz o total, mas sim produto por produto.
Se puderem me ajudar, desde já agradeço .
Re: SQL Vendidos x não Vendidos
Enviado: Sex, 17 Fev 2017 5:59 pm
por dr_gori
Se possível, coloca pra nós o que você fez. Esse SQL que traz produto por produto.
Falta muito pouco pra você conseguir.
Coloca aqui o que você fez que daí a gente diz o que falta!
Re: SQL Vendidos x não Vendidos
Enviado: Seg, 20 Fev 2017 8:29 am
por pssgyn
Dr_Gori, bom dia ....
A select que fiz foi uma junção de 2 SQL. Mas não dá certo. Aparece várias linhas, quando o que eu preciso é o total geral. De qualquer forma, obrigado pela atenção.
Selecionar tudo
select count(distinct ite.codprod) as total_vendido
from tgfite ite
inner join tgfpro pro
on pro.codprod = ite.codprod
inner join tgfcab cab
on ite.nunota = cab.nunota
inner join tgfest est
on est.codprod = pro.codprod
where pro.ativo = 'S'
and est.estoque > 0
and pro.usoprod = 'R'
and ite.statusnota = 'L'
and cab.dtneg >= &periodo_ini
and cab.dtneg <= &periodo_fin;
Selecionar tudo
select count(distinct pro.codprod) as total_não_vendido
from tgfpro pro
left join tgfite ite
on ite.codprod = pro.codprod
inner join tgfcab cab
on ite.nunota = cab.nunota
inner join tgfest est
on est.codprod = pro.codprod
where pro.ativo = 'S'
and est.estoque > 0
and pro.usoprod = 'R'
-- and ite.statusnota = 'L'
and cab.dtneg >= &periodo_ini
and cab.dtneg <= &periodo_fin;
A tabela tgfcab é o cabeçalho das notas fiscais de venda e a tabela tgfite são os itens da NF que tem os produtos vendidos. A tabela tgfest, contém o estoque de cada produto e a tabela tgfpro é o cadastro de produtos.
Re: SQL Vendidos x não Vendidos
Enviado: Ter, 21 Fev 2017 10:39 am
por pssgyn
Dr_Gori, bom dia.
Vendo aqui mesmo no fórum Glufke.Net, fui olhando alguns tópicos e me deparei com a solução que eu precisava. Encontrei a resposta. É de um membro do fórum que postou em Dezembro de 2011. Adaptei ao que necessitava e funcionou certinho. Graças a Deus, absorvi mais um conhecimento de SQL.
Obrigado Dr_Gori.
Mensagem em Qua, 21 Dez 2011 3:08 pm
Tente utilizar:
Código: Selecionar todos
SELECT QTIMPFISCAL, QTREDUCAO
FROM (SELECT COUNT(*) QTIMPFISCAL FROM IMPFISCAL WHERE FLATIVO=1)
, (SELECT COUNT(*) QTREDUCAO FROM REDUCAO WHERE (REDUCAO.DTMOVIMENTO = '06/11/2011') AND (REDUCAO.CDEMPRESA IN (4)))