[firebase-br] SQL de Item com pedido sem item

Ricardo Rocetti rocetti em gmail.com
Qui Nov 19 14:25:05 -03 2015


Boa tarde,

Tente algo assim:

from itens IT
  right outer join Produtos PRD on (it.ProdutoNo = PRD.ProdutoNo)
Where (it.entregue) like(:VarEntregue) and
it.Dataentrega between :VarDataI and :VarDataF
and it.Detalhes Like(:Var_Detalhes)

Isso forçara o retorno de todos os itens da tabela da direita (PRODUTOS) e
os correspondentes da tabela da esquerda (ITENS) se houver.

2015-11-19 14:03 GMT-02:00 Zottis <bzottis em ig.com.br>:

>
>
> pessoal, tenho um pesquisa que mostra os itens vendidos, mas existem
> alguns pedidos que não tem item, como faria para mostra-los também na
> consulta?
>
> Tabela Pedidos:
>
> pedidono, clienteno, data, etc
>
> tabela itens:
>
> pedidono, produtono, quantidade, etc.
>
> o sql é este:
>
> Select it.PEDIDONO, it.ITEMNO, it.LOJANO, it.PRODUTONO, it.CLIENTENO,
> it.DETALHES,
>  it.UNIDADE, it.DATA, it.CTROLESTNO, it.IPI, it.ICMS, it.ST,
> it.TAXACOMISSFORMPGTO,
>  it.TAXACOMISVENDEDOR, it.TAXACOMISSAOPRODUTO, it.PESO, it.DESCONTO,
> it.QUANTIA,
>  it.UNITARIO, it.CUSTOPRODUTO, it.FRETE, it.VALORIPI, it.VALORICMS,
> it.TOTAL,
>  it.LUCRO, it.TOTALPESO, it.TOTALCUSTO, it.USUARIONO, it.CLASSE_FISCAL,
>  it.DATAENTREGA, it.ENTREGUE, it.REF, it.OC,
>
> PRD.Descricao as Produto,
>  PRD.CodigoBarra as EAN13,
>  PRD.Foto as Foto,
>
>  (select P.limite_lib from Pedidos P where P.pedidono = it.pedidono)as
> Limite_lib,
>  (select p.prometido from pedidos p where p.pedidono = it.pedidono),
>
> case
>  when (select count (it2.itemno) from itens it2 where it2.pedidono =
> it.pedidono ) > 1 then
>  case
>  when it.itemno = (select min(it3.itemno)from itens it3 where
> it3.pedidono = it.pedidono ) then
>  coalesce((select coalesce( sum(cr.totalpago), 0) from ctarec cr where
> cr.pedidono = it.pedidono and cr.deletado = 'N' ),0)
>  else
>  0
>  end
>  else
>  coalesce((select coalesce( sum(cr.totalpago), 0) from ctarec cr where
> cr.pedidono = it.pedidono and cr.deletado = 'N' ),0)
>  end as totalPago,
>
>  (Select C.Nomefantasia from Clientes C where it.Clienteno =
> C.Clienteno),
>  (Select C.RazaoSocial from Clientes C where it.Clienteno =
> C.Clienteno),
>  (Select C.fone from Clientes C where it.Clienteno = C.Clienteno),
>  (Select C.celular from Clientes C where it.Clienteno = C.Clienteno),
>  case
>  when (((SELECT COUNT (cr.Contano) FROM ctarec cr WHERE cr.pedidono =
> it.pedidono and cr.pago = 'S')
>  = (SELECT COUNT (cr.Contano) FROM ctarec cr WHERE cr.pedidono =
> it.pedidono))
>  and (SELECT COUNT (cr.Contano) FROM ctarec cr WHERE cr.pedidono =
> it.pedidono) > 0) then 'S'
>  else 'N'
>  end as pago,
>
> it.total_descontos, ( CAST(it.altura as numeric(4,2)) || ' X ' ||
> cast(it.comprimento as numeric(4,2))) medida_projeto,
>  coalesce((select vp.projeto from vidr_projetoc vp where vp.cod_projeto
> = it.cod_projeto ),prd.descricao)Projeto
>
> from itens IT, Produtos PRD
> Where it.ProdutoNo = PRD.ProdutoNo
>  and
>  (it.entregue) like(:VarEntregue) and
> it.Dataentrega between :VarDataI and :VarDataF
> and it.Detalhes Like(:Var_Detalhes)
> order by
> it.Data, it.PedidoNo, it.produtoNo
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista