Fazer SUM em campo data ? SQL
23/08/2007
0
Estou com a seguinte dúvida, como não é possivel fazer um SUM em um campo Data, gostaria de pedir a ajuda dos amigos.
Preciso gerar um relatório, no qual o usuário podera inserir DataInicial e DataFinal, e preciso trazer no meu relatório o valor total do meu campo FC.MFurtada de cada dia, só lembrando que gravo Hora(2007-08-01 07:40:00.000) no meu banco.
Segue abaixo a principio e meu código.
SELECT SUM(FC.MFurtada) as TotalMesFurtada, FC.DataConstatacao FROM FurtoCabo FC INNER JOIN Ocorrencia O ON (FC.Cod_Ocorrencia = O.Cod_Ocorrencia) INNER JOIN TipoCabo TC ON (FC.Cod_TipoCaboFurtado = TC.Cod_TipoCabo) INNER JOIN UF UF ON (O.Cod_UF = UF.Cod_UF) INNER JOIN Geo Geo ON (UF.Cod_Geo = Geo.Cod_Geo) WHERE O.Deletado = 0 AND FC.DataConstatacao >= ´01/08/2007´ + ´ ´ + ´00:00:00´ AND FC.DataConstatacao <= ´01/08/2007´ + ´ ´ + ´23:59:59´ GROUP BY FC.DataConstatacao
Abraço a todos.
Maic Nogueira
Maic.rio
Curtir tópico
+ 0Posts
23/08/2007
Emerson Nascimento
SELECT convert(datetime, cast(FC.DataConstatacao as varchar(11))) Dia, SUM(FC.MFurtada) as TotalMesFurtada FROM FurtoCabo FC INNER JOIN Ocorrencia O ON (FC.Cod_Ocorrencia = O.Cod_Ocorrencia) INNER JOIN TipoCabo TC ON (FC.Cod_TipoCaboFurtado = TC.Cod_TipoCabo) INNER JOIN UF UF ON (O.Cod_UF = UF.Cod_UF) INNER JOIN Geo Geo ON (UF.Cod_Geo = Geo.Cod_Geo) WHERE O.Deletado = 0 AND FC.DataConstatacao >= ´01/08/2007´ + ´ ´ + ´00:00:00´ AND FC.DataConstatacao <= ´01/08/2007´ + ´ ´ + ´23:59:59´ GROUP BY convert(datetime, cast(FC.DataConstatacao as varchar(11)))
Gostei + 0
23/08/2007
Maic.rio
Estou utilizando SQL SErver 2005 !
Abraço...
Gostei + 0
24/08/2007
Maic.rio
Me tirem mais essa dúvida.
Anteriomente, a dúvida era sobre agrupar por dias.
Agora não estou conseguindo agrupar por mês !!
Como ficaria?
Forte abrço a todos !
Maic
Gostei + 0
24/08/2007
Emerson Nascimento
/* por dia */ SELECT convert(varchar(12), getdate(), 103) Dia, SUM(FC.MFurtada) as TotalMesFurtada FROM FurtoCabo FC INNER JOIN Ocorrencia O ON (FC.Cod_Ocorrencia = O.Cod_Ocorrencia) INNER JOIN TipoCabo TC ON (FC.Cod_TipoCaboFurtado = TC.Cod_TipoCabo) INNER JOIN UF UF ON (O.Cod_UF = UF.Cod_UF) INNER JOIN Geo Geo ON (UF.Cod_Geo = Geo.Cod_Geo) WHERE O.Deletado = 0 AND FC.DataConstatacao >= ´01/08/2007´ + ´ ´ + ´00:00:00´ AND FC.DataConstatacao <= ´01/08/2007´ + ´ ´ + ´23:59:59´ GROUP BY convert(varchar(12), getdate(), 103)
/* por mes */ SELECT right(convert(varchar(12), getdate(), 103), 7) Mes, SUM(FC.MFurtada) as TotalMesFurtada FROM FurtoCabo FC INNER JOIN Ocorrencia O ON (FC.Cod_Ocorrencia = O.Cod_Ocorrencia) INNER JOIN TipoCabo TC ON (FC.Cod_TipoCaboFurtado = TC.Cod_TipoCabo) INNER JOIN UF UF ON (O.Cod_UF = UF.Cod_UF) INNER JOIN Geo Geo ON (UF.Cod_Geo = Geo.Cod_Geo) WHERE O.Deletado = 0 AND FC.DataConstatacao >= ´01/08/2007´ + ´ ´ + ´00:00:00´ AND FC.DataConstatacao <= ´01/08/2007´ + ´ ´ + ´23:59:59´ GROUP BY right(convert(varchar(12), getdate(), 103), 7)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)