DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Frost
 

País: Brasil
Estado: PR
Cidade: Curitiba
Mensagens: 77
 Postado em: 26/3/2010 10:53:48 AM

Bom Dia
 
 
Não sou muito bom em SQL, estou precisando fazer uma consulta que me retornasse o total de pedidos em aberto de um cliente e mostrar num label.
 
estou usando Firebird - conexão com Zeos
 
 
Ex. ( cliente)  xxx  total de 13 pedidos Aberto
 
tabela cliente
 
Cod
Cliente
Status   // aberto - fechado - cancelado
Data
Tel
email
 
 
obs . se alguem souber de um bom material SQL pode ser apostila ou livro ficaria muito grato
 
 
 
 
 
 
Facc
 
 


País: Brasil
Estado: SP
Cidade: Cerquilho
Mensagens: 288
 Postado em: 26/3/2010 11:12:10 AM
Bom dia
Tente algo assim:
#Código

Select Codigo, Max(Nome), count(Abertos) from PedidosAbertos
where Codigo = :Codigo
Group By Codigo


 
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 
 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 26/3/2010 11:35:32 AM
#Código

SELECT
  Cliente,
  Email,
  COUNT(*) AS Qtde
FROM
  CLIENTE
WHERE
  Status = 'aberto'
GROUPY BY
  Cliente,
  Email


Espero ter colaborado.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 26/3/2010 11:42:34 AM
ou ainda:

Select
  P.CodCliente,
  C.Nome,
  sum(case when P.Status='Aberto' then 1 else 0 end) Abertos,
  sum(case when P.Status='Fechado' then 1 else 0 end) Fechados,
  sum(case when P.Status='Cancelado' then 1 else 0 end) Cancelados
from Clientes C
left join Pedidos P on P.CodCliente = C.Codigo
[where C.Codigo = :Codigo]
Group By P.CodCliente, C.Nome


 
Frost
 

País: Brasil
Estado: PR
Cidade: Curitiba
Mensagens: 77
 Postado em: 26/3/2010 1:26:01 PM
Boa Tarde
 
Obrigado ao pessoal que mandou as dicas que me foi de muita valia
 
Wilson
 
Quanto sua dica fiz o teste  dentro do banco e rodou  blz e mostrou o que eu queira, agora queira saber como faço no delphi para mostrar o resultado no label,  agora fiquei meio no escuro
 
 
 
 

 
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 
 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 26/3/2010 1:56:43 PM
#Código

  Query1.Close;
  Query1.SQL.Text :=
    ' SELECT' +
    '   Cliente,' +
    '   Email,' +
    '   COUNT(*) AS Qtde' +
    ' FROM' +
    '   CLIENTE' +
    ' WHERE' +
    '   Status = ' + QuotedStr( 'aberto' ) +
    ' GROUPY BY' +
    '   Cliente,' +
    '   Email';
  Query1.Open;

  Label1.Caption := IntToStr( Query1.FieldByName('Qtde').AsInteger );


É um exemplo bem simples, mas acho que já lhe ajuda. Qualquer coisa post aí.

Espero ter colaborado.

 
Frost
 

País: Brasil
Estado: PR
Cidade: Curitiba
Mensagens: 77
 Postado em: 26/3/2010 2:03:41 PM
Boa Tarde
Wilson
 
Funcionou redondinho.
 
vlw
Obrigado 
 
 

 
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 
 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 26/3/2010 2:05:44 PM
De nada.
Precisar é só postar, sempre estamos dispostos a ajudar a todos colegas.

 
andre murilo
 

País: Brasil
Estado: SC
Cidade: Timbó
Mensagens: 2
 Postado em: 21/1/2012 11:41:43 PM
Tenho um problema parecido

tenho uma tabela de vendas com ranking de vendas...
preciso fazer uma consulta (com edit) por vendedor que conte quantas vezes esse vendedor ficou em certa posição ex.:
nome posicao qtdade
andre 1 1
andre 2 4
andre 5 1
sandro 1 2 etc...
fiz o seguinte:
componentes:
edit
dbgrid

qryPosicao.Close;
qryPosicao.SQL.Text := select * from classificacao where nome= :nome;
qryPosicao.Parameters.ParamByName(nome).Value := edt1.Text;
qryPosicao.Open;

e na string da qry fiz..select nome,posicao, count(posicao) from vendas group by nome,posicao prder by nome

mas quando executo dáo seguinte erro...qryposicao field count ot found...

 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03