Consulta com IF
Pessoal, estou com uma dúvida para criar uma consulta utilizando o IF para montar as colunas .
possuo uma tabela com 3 campos importantes:
DT_PREV2, DT_FAT, VALOR_ITEM
DT_PREV2 = previsão de faturamento
DT_FAT = data do faturamento
VALOR_ITEM = valor do faturamento
Quero realizar somatórios dentro de um mesmo ano (no caso 2011)
Quando o DT_FAT é nulo, o item ainda não foi faturado e o que vale é a DT_PREV2(que é a data prevista )
Quando DT_FAT não é nulo, o item já foi faturado na data que foi inserida nesta coluna.
Gostaria de obter somatórios.
TGeral Somatório de toda a coluna VALOR_ITEM, independente do ano
TFat Faturado Geral (somatório da coluna VALOR_ITEM quando DT_FAT não for nulo,independente do ano)
TPrev Previsto Geral (somatório da coluna VALOR_ITEM quando DT_FAT for nulo,independente do ano)
FatAno Faturado do ano (somatório da coluna VALOR_ITEM somente quando DT_FAT for do ano de 2011)
PreAno Previsto do Ano (somatório da coluna VALOR_ITEM somente quando DT_FAT for nulo e DT_PREV2 for do ano de 2011)
o resultado seria parecido com isto:
projeto| TGeral | TFat| TPrev | FANO | PANO |
proj A | 100 | 50 | 50 | 50 | 50 |
proj A | 200 | 100 | 100 | 80 | 20 |
proj A | 500 | 200 | 300 | 60 | 10 | <-- (em 2011 faturou 60 e previsto 10, porém existe 300 de previsão para outros anos)
estou tentando inicialmente separar os faturados dos previsto mãos não estou conseguindo muito bem, a resposta está meio confusa.
Segue a minha consulta:
<code>
select
projetos.abreviatura, sum(valor_item) as 'TOTAL',
IF((EXTRACT(YEAR FROM contrato_itens.dt_fat ) = 2011), sum(valor_item), '') AS 'FATURADO',
IF((EXTRACT(YEAR FROM contrato_itens.dt_prev2 ) = 2011) and contrato_itens.dt_fat is null, sum(valor_item), '') AS 'PREVISTO'
from contrato_itens,projetos
where contrato_itens.id_proj=projetos.codigo
group by projetos.codigo
order by projetos.abreviatura
</code>
o somatório total está OK, mas aparentemente quando a primeiro teste é válido ele nãpo faz o segundo.
o que resulta é que eu obtenho os valores em somente uma coluna.
TOTAL - FATURADO - BRANCO
TOTAL - BRANCO - PREVISTO
Se alguem puder me esclarecer ou dar uam direção , eu agradeceria.
Obrigado
Davis
Discussão (2)
Carregando comentários...