Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elton2203

Exibir um quantos "não" cada cliente possui

Recommended Posts

Preciso fazer um relatório do sistema aqui da empresa e esse relatório tem que me informar quantos não aparece em um determinado cliente, essa sentença que aparece logo abaixo me informa o total e funciona perfeitamente, mas eu preciso separar quantos não cada cliente possui...

 

SELECT COUNT(PONTENTRG)
FROM FCFO, TMOV, TMOVCOMPL
WHERE TMOVCOMPL.PONTENTRG = 'NAO' and TMOV.CODCFO = FCFO.CODCFO and TMOVCOMPL.IDMOV = TMOV.IDMOV and TMOV.CODTMV = '1.2.01' and FCFO.CODCOLIGADA = '1’

 

Essa informação "não", trata-se de uma informação do cliente, por exemplo: se ele faz suas entregas no prazo? sim ou não.

 

Quero saber quantos não ou quantos sim esse cliente possui.

 

Agradeço a ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize o GROUP BY

exemplo:

SELECT COUNT(PONTENTRG), TMOVCOMPL.PONTENTRG
FROM FCFO, TMOV, TMOVCOMPL
WHERE  TMOV.CODCFO = FCFO.CODCFO and TMOVCOMPL.IDMOV = TMOV.IDMOV and TMOV.CODTMV = '1.2.01' and FCFO.CODCOLIGADA = '1’
group by TMOVCOMPL.PONTENTRG

outros exemplos:

http://www.devguru.com/technologies/t-sql/7080.asp

http://imasters.com.br/artigo/16873/mysql/retornando_registros_no_resultado_da_sql_com_group_by/

http://imasters.com.br/artigo/1128/sql_server/totalizando_dados_com_rollup_e_cube/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Amigo

Eu agradeço a ajuda... realmente agora eu já consigo vizualizar os dados separadamente, porém da forma que esta descrito abaixo ele não consegue separar a quantidade de "Não" de cada cliente, ou seja, ele resgata a informação somente do primeiro que ele encontra...

 

SELECT COUNT(*)
FROM FCFO, TMOV, TMOVCOMPL
WHERE TMOVCOMPL.PONTENTRG = 'NAO' and TMOV.CODCFO = FCFO.CODCFO and FCFO.PAGREC = '3' and TMOVCOMPL.IDMOV = TMOV.IDMOV and TMOV.CODTMV = '1.2.01' and FCFO.CODCOLIGADA = '1' GROUP BY FCFO.NOME

 

Será que você pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente :

 

SELECT TMOVCOMPL.PONTENTRG, COUNT(PONTENTRG)
FROM FCFO, TMOV, TMOVCOMPL
WHERE TMOVCOMPL.PONTENTRG = 'NAO' and TMOV.CODCFO = FCFO.CODCFO and TMOVCOMPL.IDMOV = TMOV.IDMOV and TMOV.CODTMV = '1.2.01' and FCFO.CODCOLIGADA = '1’
group by TMOVCOMPL.PONTENTRG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse código me devolve todos os registros...

O codigo que eu enviei anteriormente me devolve os valores porém não me mostra os registros com o campo "null".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem, mas :

 

SELECT TMOVCOMPL.PONTENTRG,COUNT(*)
FROM   FCFO, TMOV, TMOVCOMPL
WHERE  TMOV.CODCFO = FCFO.CODCFO 
and FCFO.PAGREC = '3' 
and TMOVCOMPL.IDMOV = TMOV.IDMOV 
and TMOV.CODTMV = '1.2.01' 
and FCFO.CODCOLIGADA = '1' 
GROUP BY FCFO.NOME

 

TMOV.CODTMV = '1.2.01' - O que esta condição significa, só uma das perguntas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem, mas :

 

SELECT TMOVCOMPL.PONTENTRG,COUNT(*)
FROM   FCFO, TMOV, TMOVCOMPL
WHERE  TMOV.CODCFO = FCFO.CODCFO 
and FCFO.PAGREC = '3' 
and TMOVCOMPL.IDMOV = TMOV.IDMOV 
and TMOV.CODTMV = '1.2.01' 
and FCFO.CODCOLIGADA = '1' 
GROUP BY FCFO.NOME

 

TMOV.CODTMV = '1.2.01' - O que esta condição significa, só uma das perguntas ?

 

 

Vamos reformular as coisas... TMOV.CODTMV = '1.2.01' é apenas um movimento do sistema... cada numero equivale a uma area...

Nós já conseguimos evoluir bastante... estamos com a seguinte sentença:

 

SELECT  
   FCFO.NOME AS FORNECEDOR_SIM
      , COUNT (TMOVCOMPL.PONTENTRG) AS PONTENTRG_SIM 
   , COUNT (TMOVCOMPL.PONTENTRG) AS PONTENTRG_NAO 
   FROM FCFO, TMOV, TMOVCOMPL
WHERE TMOVCOMPL.PONTENTRG = [color="#FF0000"]'NAO'[/color] and TMOV.CODCFO = FCFO.CODCFO and FCFO.PAGREC = '3' and TMOVCOMPL.IDMOV = TMOV.IDMOV and TMOV.CODTMV = '1.2.01' 
and FCFO.CODCOLIGADA = '1' GROUP BY FCFO.NOME ORDER BY FCFO.NOME, PONTENTRG_SIM, PONTENTRG_NAO

 

Essa sentença esta funcionando da seguinte forma:

Aprensenta o nome do cliente/fornecedor na coluna 1; na coluna 2 ele informa a quantidade de 'SIM'; e na coluna 3 ele informa a quantidade de 'NÃO'.

Porém essa sentenção só informa o valor especificado em "TMOVCOMPL.PONTENTRG = 'NAO'" e nós precisamos que os valores são como especificado e não na forma que esta devolvendo.

 

Atenciosamente

Elton Assunção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se

 

COUNT (TMOVCOMPL.PONTENTRG) AS PONTENTRG_SIM

COUNT (TMOVCOMPL.PONTENTRG) AS PONTENTRG_NAO se referem a mesma coluna terá o mesmo resultado para sim e não, correto ?

 

Publique as tabelas, relacionamentos e colunas envolvidas, pode ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.