Fórum Ajuda com SQL #368633

22/02/2009

0

Eae Galera, vocês poderiam me dar uma ajuda?

É o seguinte, tenho uma tabela da forma abaixo:

ProdutoTipoCor
FEIJAO ABRANCO
FEIJAO ABRANCO
FEIJAO ABRANCO
FEIJAO BPRETO
ARROZ ABRANCO
ARROZ BBRANCO
ARROZ BBRANCO

Queria que Filtrar esta informações para serem exibidas da forma abaixo:

ProdutoTipoCorQuantidade
FEIJAO ABRANCO 3
FEIJAO BPRETO 1
ARROZ ABRANCO 1
ARROZ BBRANCO 2

Obs.: A tabela seria igual a anterior sendo eliminado apenas as duplicidades, e somando os campos que forem duplicados.

Com o código abaixo consegui filtrar da forma que desejo mas não conseguir fazer a quantidade de cada item duplicado.

DataModule1.QueryAtendimentos.Close;
DataModule1.QueryAtendimentos.SQL.Clear;
DataModule1.QueryAtendimentos.SQL.Add(´SELECT distinct Produto, Tipo, Cor´);
DataModule1.QueryAtendimentos.SQL.Add(´FROM Atendimento´);
DataModule1.QueryAtendimentos.Open;


Fico no aguardo de qualquer ajuda.

Obrigado.


Ranyeryfip

Ranyeryfip

Responder

Posts

22/02/2009

Dbergkamps10

Olá,
Vc terá que fazer o seguinte: combine os campos Produto e Tipo num só (ex. ProdTp), via sql, só que não sei como.... :roll: :roll: :roll: :roll: :roll: :roll:
Depois a sua Sql deve ficar assim:
DataModule1.QueryAtendimentos.SQL.Add(´SELECT Produto, Tipo, Cor, PrdTp, Count(PrdTp´);
DataModule1.QueryAtendimentos.SQL.Add(´FROM Atendimento´); 
DataModule1.QueryAtendimentos.SQL.Add(´Group by PrdTp´); 

Espero ter ajudado.

Att
Dalton.


Responder

Gostei + 0

22/02/2009

Ranyeryfip

Dalton muito obrigado pela ajuda, mas também não sei combinar as duas tabelas, estou começando agora com SQL sempre usei o FILTER da table.

Se alguém poder dar outra díca fico agradecido.

VLW.


Responder

Gostei + 0

23/02/2009

Paullsoftware

vou te dar um exemplo usando uma tabela do meu banco blz?

nesse caso deve-se usar as funções

[b:83c2c89e6b]left join [/b:83c2c89e6b]para fazer relacionamento entre as tabelas
[b:83c2c89e6b]count[/b:83c2c89e6b] para contar o total de itens dentro da coluna
[b:83c2c89e6b]where[/b:83c2c89e6b] para se fazer um filtro
[b:83c2c89e6b]group by [/b:83c2c89e6b]para agrupar as colunas de mesmo conteúdo

aqui pego os dados de duas tabelas
select loc.locatario as Cliente, count(det.cod_filme) as Locacoes from locacao loc left join detlocacao det on(det.codlocacao=loc.codlocacao) where loc.codcliente=:CodCliente group by loc.locatario


mais pelos campos que você mostrou pode ser feito mais ou menos assim:
select PRODUTO, TIPO, COR, COUNT(QUANTIDADE) AS QUANTIDADE from ATENDIMENTO where CODPRODUTO>0 /* A FUNÇÃO WHERE É OBRIGATÓRIA SE TRATANDO DE AGRUPAMENTO, NESTE CASO ESTOU FILTRANDO TODOS OS CODIGOS QUE FOREM MAIOR QUE ZERO*/ group by PRODUTO, TIPO, COR order by PRODUTO



Responder

Gostei + 0

23/02/2009

Ranyeryfip

paullsoftware muito obrigado pela dica, funcionou perfeitamente.

Vlw.


Responder

Gostei + 0

23/02/2009

Paullsoftware

Precisando estamos ai! :roll:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar