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! :-o

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)))

:D :D :D