CONSULTA POR MES EM SQL

PROFELISEU 09/09/2013 20:51:00
#428623
Boa noite pessoal, estou com uma dificuldade em fazer um sql, e gostaria de uma ajudinha se for possivel. Tenho as seguintes tabelas:

TbFilme (pkCodfime, Titulo)
TbLocacao (pkCodLoc, DataLoc,FkCodCli)
TbCliente (PkCodCli, NomeClie, Endcli)
TBRelFimeLoc (PkCodRel, FKCodFilme,FKCodLoc)

Preciso mostrar o SQL que retorna 4 colunas contendo o nome dos clientes(1º coluna) e a quantidade de locações por eles realizadas nos meses 08(2º coluna), 09(3º coluna) e 10(4º coluna).

Agradeceria Ajuda,
professor.eliseu@gmail.com
MADMAX 10/09/2013 09:59:44
#428632
Resposta escolhida
Deve ficar mais ou menos assim.

SELECT
NomeCli,
(SELECT CONT(*) FROM TbLocacao WHERE FKCodCli = PkCodCli AND RIGHT(CONVERT(VARCHAR(10), DataLoc, 103), 7) = [ô]08/2013[ô] ) as Mes08,
(SELECT CONT(*) FROM TbLocacao WHERE FKCodCli = PkCodCli AND RIGHT(CONVERT(VARCHAR(10), DataLoc, 103), 7) = [ô]09/2013[ô] ) as Mes09,
(SELECT CONT(*) FROM TbLocacao WHERE FKCodCli = PkCodCli AND RIGHT(CONVERT(VARCHAR(10), DataLoc, 103), 7) = [ô]10/2013[ô] ) as Mes10
FROM
TbCliente
PROFELISEU 11/09/2013 20:09:40
#428723
Obrigado..
Deu certinho...
E tb fiz de outra maneira...

SELECT TbCliente.NomeClie,
SUM(CASE WHEN EXTRACT(MONTH FROM TbLocacao.DataLoc) = 08 THEN 1 ELSE 0 END) AS [Ô]Mes 08[Ô],
SUM(CASE WHEN EXTRACT(MONTH FROM TbLocacaoDataLoc) = 09 THEN 1 ELSE 0 END) AS [Ô]Mes 09[Ô],
SUM(CASE WHEN EXTRACT(MONTH FROM TbLocacao.DataLoc) = 10 THEN 1 ELSE 0 END) AS [Ô]Mes 10[Ô]
FROM TbCliente JOIN TbLocacao ON (TbCliente.PkCodCli = TbLocacao.FkCodCli)
WHERE EXTRACT(YEAR FROM TbLocacao.DataLoc) = 2012
GROUP BY TbCliente.NomeClie;

Abraço
Tópico encerrado , respostas não são mais permitidas