Ir para conteúdo

Arquivado

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

Sheila de Souza

sql(access)

Recommended Posts

Oi galera.....to com um problemao: tenho um banco Access e preciso gerar uma SQL que tenha os campos(mes, grave, gravissima, leve, qtde) eu fiz uma select mais ou meno assim:

 

SELECT Format (A.DataOcorrencia, 'mm/yyyy') As Data,

(SELECT Count( I2.CodInfracao) As Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "LEVE" )) As Leve,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "MEDIA")) As Media,

FROM AutoInfracao AS A

GROUP BY Format(A.DataOcorrencia, 'mm/yyyy')

 

Ela me retorna assim:

 

Data Leve Media

01/2004 73 2834

01/2005 73 2834

 

eu queria que ela me retornasse a quantidade por mes......

Detalhe o campo data é vem de uma campo data/hora....... alguem tem alguma sugestaão de como comparo a data da tabela "A" com a da "i2"?

 

Se alguem puder me ajudar ......Muito obrigada...

Até

Compartilhar este post


Link para o post
Compartilhar em outros sites

A JA CONSEGUI;...SE ALGUEM PRECISAR TA AKI O JEITO Q EU CONSEGUI...

 

SELECT Format (A.DataOcorrencia, 'mm/yyyy') As Data,

(SELECT Count( I2.CodInfracao) As Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "LEVE" ) AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy')) As Leve,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "MEDIA" AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy'))) As Media,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "GRAVE" AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy'))) As Grave,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "GRAVISSIMA" AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy'))) As Gravissima,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "0" AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy'))) As Zero,

(SELECT Count( I2.CodInfracao) AS Qtde FROM AutoInfracao I2 WHERE (I2.DescPonto = "" AND Format(A.DataOcorrencia, 'mm/yyyy') = Format(I2.DataOcorrencia, 'mm/yyyy'))) As Branco

FROM AutoInfracao AS A

GROUP BY Format(A.DataOcorrencia, 'mm/yyyy')

ORDER BY YEAR( Format(A.DataOcorrencia, 'mm/yyyy') ), MONTH( Format(A.DataOcorrencia, 'mm/yyyy') )

 

É UM POUQUINHO GRANDE MAIS FUNCIONOU ELA RETORNOU ISSO PRA MIM:

 

Data Leve Media Grave Gravissima Zero Branco

12/2005 10 380 321 152 1 2

01/2006 7 241 151 123 1 0

02/2006 2 188 98 85 0 0

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.