[firebase-br] Ajuda com sql

andre conrado acf.andre em gmail.com
Qua Jan 5 12:26:05 -03 2011


Eu faria assim:

SELECT E.*
FROM ESTOQUE_EMPRESA E LEFT JOIN ESTOQUE_TERMINAL ON (E.ID_PRODUTO =
T.ID_PRODUTO)
WHERE T.ID_PRODUTO IS NULL

isso retornará apenas os registros que existam na tabela
'ESTOQUE_EMPRESA' sem correspondentes na tabela 'ESTOQUE_TERMINAL'.

Agora caso o campo 'ESTOQUE' informe a quantidade de produtos em
estoque, então em um novo cenário eu usaria:

SELECT E.*
FROM ESTOQUE_EMPRESA E LEFT JOIN ESTOQUE_TERMINAL ON (E.ID_PRODUTO =
T.ID_PRODUTO)
WHERE T.ID_PRODUTO IS NULL OR T.ESTOQUE = 0

Onde seriam retornados os registro de 'ESTOQUE_EMPRESA' sem
correspondência ou os que havendo correspondência o estoque em
'ESTOQUE_TERMINAL' esteja zerado.

Abraços,
André Conrado.


Em 04/01/11, Alysson Gonçalves de Azevedo<agalysson em gmail.com> escreveu:
> algo como
> SELECT E.*
> FROM ESTOQUE_EMPRESA E
>
> LEFT JOIN ESTOQUE_TERMINAL T ON(E.ID_PRODUTO <> T.ID_PRODUTO)
>
> WHERE NOT EXISTS (select 1 from ESTOQUE_TERMINAL where E.ID_PRODUTO =
> T.ID_PRODUTO)
>  AND  E.ID_EMPRESA = XXX
>
> talvez nao funcione assim exatamente, mas pesquise sobre o not exists, ele
> serve pra isso...
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
> (\(''^_^ )/)
>
> "Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
> gritando: -Perdi tudo!!!"
>
>
>
> Em 4 de janeiro de 2011 22:47, Jose Luiz de Medeiros <
> joseluiz em digitoneletronica.com.br> escreveu:
>
>> Colegas,
>>
>>
>>
>>
>>
>> Tenho as seguintes  tabelas  com seguintes campos:
>>
>>
>>
>> ESTOQUE_EMPRESA                                     ESTOQUE_TERMINAL
>>
>> ID
>> ID
>>
>> ID_EMPRESA                                                    ID_EMPRESA
>>
>> ID_PRODUTO                                                   ID_TERMINAL
>>
>> ESTOQUE
>> ID_PRODUTO
>>
>>
>> ESTOQUE
>>
>>
>>
>> Com essas tabelas, controlo o estoque de determinado produto de uma
>> empresa
>> e de um terminal dessa empresa.
>>
>>
>>
>> O que estou precisando e numa consulta sql. Saber quais produtos tenho na
>> empresa e não tenho no terminal.
>>
>> Fiz assim mais não deu certo.
>>
>>
>>
>> SELECT E.*,T.*
>>
>> FROM ESTOQUE_EMPRESA E
>>
>> LEFT JOIN ESTOQUE_TERMINAL T ON(E.ID_PRODUTO <> T.ID_PRODUTO)
>>
>> WHERE
>>
>> T.ID_TERMINAL = 1
>>
>> AND
>>
>> E.ID_EMPRESA
>>
>>
>>
>> Gostaria nesse sql de  ver os produtos que tenho no estoque da empresa,
>> mas
>> não tenho no terminal?
>>
>>
>>
>> Fico grato pela atenção dos amigos.
>>
>>
>>
>> Jose Luiz
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


-- 
Um Abraço,
André Conrado.

055 21 8840-6232 - Oi
055 21 7856-8125 - NextTel ID:55*83*16416
055 21 9896-5449 - Vivo (apenas mensagens SMS)




Mais detalhes sobre a lista de discussão lista