Ir para conteúdo

Arquivado

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

erison

Contar registros iguais

Recommended Posts

Select
t2."IDfunci", t2."DSfunci", Extract(Month From t2."DTos") As mes, Extract(Year From t2."DTos") as ano, 	
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano
Order By t2."DSfunci", mes Asc

 

ele me retorna

id nome

5 di

5 di

5 di

8 ee

8 ee

 

quero um modo que conte. quantos registros tem iguais assim

id nome qtd

5 di 3

5 di 3

5 di 3

8 ee 2

8 ee 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

O 1º resultado não "bate" com a query passada.

 

ele traz mais registros e pq não não listei todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 colunas da sql contra 2 do "result"

 

tente ...

 

select IDfunci, 
      DSfunci, 
      count(*) qtd
from
(
Select
t2."IDfunci" IDfunci, 
t2."DSfunci" DSfunci, 
Extract(Month From t2."DTos") As mes, 
Extract(Year From t2."DTos") as ano, 	
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano
) virtual
group by IDfunci, 
        DSfunci
Order By IDfunci, 
        DSfunci

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, Assim nao deu certo

pq como você colo tomo o meu select dentro do ( ) ele so retorno um campo.

 

e repare que no meu tem Where Extract(Year From t2."DTos") = 2012

que e para trazar todos desse ano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro que aconteceu ?

 

não deu erro so que como você coloco o meu select dentro de um ()

ele so retorno os campos listados fora que é

id nome(virtual) ea contagem, e essa contagem deu muito certa não :s

 

pq se você repara meu select e so entre 2 tabelas.

e quero saber quanto tempo cada pessoa gasto, em cada mês durante o ano atual(2012)

 

e esse select faz certo so que presciso saber. quantas vez acada usuario aparece.

 

tipo eu apareço no mês 5,6,9 .

quero que ele fassa uma contagem retornado 3. entede.

e simples mas ta dando bucho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi, mas ...

 

Select
t2."IDfunci" IDfunci, 
t2."DSfunci" DSfunci, 
Extract(Month From t2."DTos") As mes, 
Extract(Year From t2."DTos") as ano, 	
Count(t2."IDfunci") qtd,
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano
) virtual
group by IDfunci, 
        DSfunci
Order By IDfunci, 
        DSfunci

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu erro essa aspa aqui do ) virtual

 

ela termina mas não começa, você esqueçeu de começa ela em algum canto :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select
t2."IDfunci" IDfunci, 
t2."DSfunci" DSfunci, 
Extract(Month From t2."DTos") As mes, 
Extract(Year From t2."DTos") as ano,    
Count(t2."IDfunci") qtd,
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano

 

Não tem mais a tabela virtual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara deu certo não ele retorno uma contagem errada, acho que ele ta contando na tabela da os todos os registros da quele mês.

 

eu quero saber quantas vez cada usuario aparece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quer a soma por mês mas o número de vezes total ?

Irá repetir pois o agrupamento da query é por mês.

 

Faz um exemplo pequeno (dados x totalizadores) que se quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quero saber de cada funcionario, quanto tempo ele gasto em cada mês.

 

ai

TBos

IDos

IDfunci

NMfunci

DTos

 

TBosTemp

IDos

HRtotal(aqui ea hora gasta, para quela os.)

 

ai

quero saber quanto tempo foi gasto em cada mês de cada funcionario.

 

 

e da quele geito que eu postei la no primeiro poste ela faz certo.

so que eu presciso saber quantas vezes cada funcionario aparece. tipo: erison, mes 6,7,10,11. apareceu 4x.

quero que elem das informações que eu falei, tb diga quantos meses ele trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Montei uma tabela virtual com a resultado que já estava certo.

Contei os distintos ids

Contei os distintos ids por ano/mes

Atenção ao || (não sei como se concatena no BD m questão)

 

 

select IDfunci, 
      DSfunci, 
      mes,
      ano,
      tempo,
      (count distinct IDfunci) qtdID,
      (count distinct IDfunci||mes||ano) qtdvezes,
from
(
Select
t2."IDfunci" IDfunci, 
t2."DSfunci" DSfunci, 
Extract(Month From t2."DTos") As mes, 
Extract(Year From t2."DTos") as ano,    
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano
) virtual
group by IDfunci, 
        DSfunci, 
        mes,
        ano,
        tempo
Order By IDfunci, 
        DSfunci, 
        mes,
        ano,
        tempo

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa deu erro nessas ||

oq e isso?

Select "IDfunci", 
      "DSfunci", 
      mes,
      ano,
      tempo,
      (count (distinct "IDfunci")) As "qtdID",
      (count (distinct "IDfunci" || mes || ano)) As qtdvezes
From
(
Select
t2."IDfunci", 
t2."DSfunci", 
Extract(Month From t2."DTos") As mes, 
Extract(Year From t2."DTos") As ano,    
Sum(t1."HRtotal") As tempo
From "TBosTempo" t1 Inner Join "TBos" t2 On t1."IDos" = t2."IDos"
Where Extract(Year From t2."DTos") = 2012
Group By t2."IDfunci",t2."DSfunci", mes, ano
) As virtual
group by "IDfunci", 
        "DSfunci", 
        mes,
        ano,
        tempo
Order By "IDfunci", 
        "DSfunci", 
        mes,
        ano,
        tempo

 

 

ERROR: operator does not exist: integer || double precision

LINHA 7: (count (distinct "IDfunci" || mes || ano)) As qtdveze...

^

DICA: No operator matches the given name and argument type(s). You might need to add explicit type casts.

 

********** Erro **********

 

ERROR: operator does not exist: integer || double precision

SQL state: 42883

Dica: No operator matches the given name and argument type(s). You might need to add explicit type casts.

Caracter: 159

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o + no lugar do || ea contagem do qtdID, qtdvezes veio tudo 1;

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.