Como fazer esta sql
05/02/2006
0
Para fazer uma consulta de todos os clientes que compraram na minha empresa eu faço a seguinte instrução sql:
Select nome_cliente from clientes where exists(select * from vendas where vendas.codigo_cliente = clientes.codigo);
Até ai esta tudo bem o problema é que eu presciso fazer uma consulta que saia todos os clientes cadastrados e se o clientes tiver feito uma compra o sistema marca ele com um asterisco(*). Como fazer isto em sql.
Eu uso Delphi 7, dbExpress, Interbase e Fortes Report....
Desde já muito obrigado pela ajuda...
Luciano Ramos
Luciano.sul
Posts
06/02/2006
Thomaz_prg
Select Case when exists(select * from vendas where vendas.codigo_cliente = clientes.codigo) then ´*´ else ´ ´ end as Comprou, nome_cliente from clientes;
Dessa forma, você teria um campo que mostraria se o cliente comprou ou não.
06/02/2006
Luciano.sul
07/02/2006
Luciano.sul
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(´Select Case when exists(select * from´);
SQLQuery1.SQL.Add(´ vendas here vendas.codigo_cliente´);
SQLQuery1.SQL.Add(´ = clientes.codigo) then ´*´ else ´ ´ ´);
SQLQuery1.SQL.Add(´ end as Comprou, nome_cliente from clientes´);
SQLQuery1.Open;
O Delphi me da o seguinte erro.
[Error] Unit1.pas(37): Operator not applicable to this operand type
Oque pode ser???? :oops:
Desde ja muito obrigado...
08/02/2006
Thomaz_prg
SQLQuery1.Close; SQLQuery1.SQL.Clear; SQLQuery1.SQL.Add(´Select´); SQLQuery1.SQL.Add(´ Case SQLQuery1.SQL.Add(´ when exists(select * from vendas SQLQuery1.SQL.Add(´ where vendas.codigo_cliente = clientes.codigo) ´ SQLQuery1.SQL.Add(´ then ´+QuotedStr(´*´)+´ else ´+QuotedStr(´ ´) ); SQLQuery1.SQL.Add(´ end as Comprou, nome_cliente from clientes´); SQLQuery1.Open;
Clique aqui para fazer login e interagir na Comunidade :)