575.481 temas | 4.814.965 mensajes | seremos forros, pero somos una bocha

Access a SQL Server

En el foro de Programación

Viejo castleuct dijo: 07.05.12
Hola usuarios, primero que todo, gracias por darse el tiempo de leer mi pregunta. Les cuento, estoy viendo un proceso dentro de la empresa en la cual trabajo, y tengo un problema al momento de pasar un if construido en access (el cual está validado en un 100%) a SQL server 2008, ya que como en este no se puede usar la Sentencia IF, tengo problemas al momento de pasarlo al CASE, pues al momento de ejecutar la misma consulta en ambos programas, los datos obtenidos no son los mismos, y realmente nosé dónde puede estar el error para que ambas tablas me den iguales... ojalá pudiesen ayudarme, adjuntaré ambos códigos con la esperanza de poder encontrar respuestas:

CÓDIGO ACCESS:

SELECT [Base].[ID], ([Base].[FACT]-[Base].[FANT]) AS Periodo, ([Base].[FIS_KWH_BSE]+[Base].[FIS_KWH_INV])/Periodo AS Dia_KWH,
IIf([FANT]<=40756 And [FACT]>40756 And [FANT]<=40786 And [FACT]>40786,Dia_KWH*(Day(40786)),
IIf([FANT]<=40756 And [FACT]>40756,Dia_KWH*([FACT]-40756),
IIf([FANT]<=40786 And [FACT]>40786,Dia_KWH*(40786-[FANT]+1),
IIf([FANT]>40756 And [FACT]>40756 And [FANT]<40786 And [FACT]<=40786,Dia_KWH*Periodo,0)))) AS Ago_11_KWH,

IIf([FANT]<=40787 And [FACT]>40787 And [FANT]<=40816 And [FACT]>40816,Dia_KWH*(Day(40816)),IIf([FANT]<=40787 And [FACT]>40787,Dia_KWH*([FACT]-40787),IIf([FANT]<=40816 And [FACT]>40816,Dia_KWH*(40816-[FANT]+1),IIf([FANT]>40787 And [FACT]>40787 And [FANT]<40816 And [FACT]<=40816,Dia_KWH*Periodo,0)))) AS Sep_11_KWH, IIf([FANT]<=40817 And [FACT]>40817 And [FANT]<=40847 And [FACT]>40847,Dia_KWH*(Day(40847)),IIf([FANT]<=40817 And [FACT]>40817,Dia_KWH*([FACT]-40817),IIf([FANT]<=40847 And [FACT]>40847,Dia_KWH*(40847-[FANT]+1),IIf([FANT]>40817 And [FACT]>40817 And [FANT]<40847 And [FACT]<=40847,Dia_KWH*Periodo,0)))) AS Oct_11_KWH, IIf([FANT]<=40848 And [FACT]>40848 And [FANT]<=40877 And [FACT]>40877,Dia_KWH*(Day(40877)),IIf([FANT]<=40848 And [FACT]>40848,Dia_KWH*([FACT]-40848),IIf([FANT]<=40877 And [FACT]>40877,Dia_KWH*(40877-[FANT]+1),IIf([FANT]>40848 And [FACT]>40848 And [FANT]<40877 And [FACT]<=40877,Dia_KWH*Periodo,0)))) AS Nov_11_KWH, IIf([FANT]<=40878 And [FACT]>40878 And [FANT]<=40908 And [FACT]>40908,Dia_KWH*(Day(40908)),IIf([FANT]<=40878 And [FACT]>40878,Dia_KWH*([FACT]-40878),IIf([FANT]<=40908 And [FACT]>40908,Dia_KWH*(40908-[FANT]+1),IIf([FANT]>40878 And [FACT]>40878 And [FANT]<40908 And [FACT]<=40908,Dia_KWH*Periodo,0)))) AS Dic_11_KWH, IIf([FANT] <= 40909 and [FACT] > 40909,IIf([FANT] < 40939 and [FACT] >= 40939, Dia_KWH * (Day(40939)), Dia_KWH * ([FACT] - 40909)),IIf([FANT] <= 40939 and [FACT] > 40939, IIf([FANT] > 40909 and [FACT] > 40909, Dia_KWH * Periodo, Dia_KWH * (40939 - [FANT] + 1)), 0)) AS Ene_11_KWH
FROM Base
WHERE ((([Base].[NIS]) Not In (3032208,3032209,3032210,3032211,3032212,3032213,3 032214,3032216,3032217,3032218,3032219,3032220,303 2221,3032222,3032223,3032224,3032226,3039437))) And [base].[imp_transf]<>0;


CÓDIGO SQL:


/*0_energia_base*/

declare @fecha_inicio1 datetime, @fecha_fin1 datetime
declare @fecha_inicio2 datetime, @fecha_fin2 datetime
declare @fecha_inicio3 datetime, @fecha_fin3 datetime
declare @fecha_inicio4 datetime, @fecha_fin4 datetime
declare @fecha_inicio5 datetime, @fecha_fin5 datetime
declare @fecha_inicio datetime, @fecha_fin datetime
set @fecha_inicio='20120101'
set @fecha_fin='20120131'
set @fecha_inicio1='20111201'
set @fecha_fin1='20111231'
set @fecha_inicio2='20111101'
set @fecha_fin2='20111130'
set @fecha_inicio3='20111001'
set @fecha_fin3='20111031'
set @fecha_inicio4='20110901'
set @fecha_fin4='20110930'
set @fecha_inicio5='20110801'
set @fecha_fin5='20110831'
SELECT b.[ID],
/*
IF (convert(datetime,b.[FANT])<=@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 And convert(datetime,b.[FANT])<=@fecha_fin5 And convert(datetime, b.[FACT])>@fecha_fin5,
BEGIN
((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin5)),0)
END
*/
(case
when convert(datetime,b.[FANT])<=@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 And convert(datetime,b.[FANT])<=@fecha_fin5 And convert(datetime, b.[FACT])>@fecha_fin5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin5))
when convert(datetime,b.[FANT])<=@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio5))
when convert(datetime,b.[FANT])<=@fecha_fin5 And convert(datetime, b.[FACT])>@fecha_fin5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin5-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 And convert(datetime,b.[FANT])<@fecha_fin5 And convert(datetime, b.[FACT])<=@fecha_fin5 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_1,

(case
when convert(datetime,b.[FANT])<=@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 And convert(datetime,b.[FANT])<=@fecha_fin4 And convert(datetime, b.[FACT])>@fecha_fin4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin4))
when convert(datetime,b.[FANT])<=@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio4))
when convert(datetime,b.[FANT])<=@fecha_fin4 And convert(datetime, b.[FACT])>@fecha_fin4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin4-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 And convert(datetime,b.[FANT])<@fecha_fin4 And convert(datetime, b.[FACT])<=@fecha_fin4 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_2,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 And convert(datetime,b.[FANT])<=@fecha_fin3 And convert(datetime, b.[FACT])>@fecha_fin3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin3))
when convert(datetime,b.[FANT])<=@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio3))
when convert(datetime,b.[FANT])<=@fecha_fin3 And convert(datetime, b.[FACT])>@fecha_fin3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin3-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 And convert(datetime,b.[FANT])<@fecha_fin3 And convert(datetime, b.[FACT])<=@fecha_fin3 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_3,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 And convert(datetime,b.[FANT])<=@fecha_fin2 And convert(datetime, b.[FACT])>@fecha_fin2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin2))
when convert(datetime,b.[FANT])<=@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio2))
when convert(datetime,b.[FANT])<=@fecha_fin2 And convert(datetime, b.[FACT])>@fecha_fin2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin2-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 And convert(datetime,b.[FANT])<@fecha_fin2 And convert(datetime, b.[FACT])<=@fecha_fin2 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_4,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 And convert(datetime,b.[FANT])<=@fecha_fin1 And convert(datetime, b.[FACT])>@fecha_fin1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin1))
when convert(datetime,b.[FANT])<=@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio1))
when convert(datetime,b.[FANT])<=@fecha_fin1 And convert(datetime, b.[FACT])>@fecha_fin1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin1-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 And convert(datetime,b.[FANT])<@fecha_fin1 And convert(datetime, b.[FACT])<=@fecha_fin1 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_5,
(case
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_fin))then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day((dateadd(month,0, @fecha_fin))))
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-(dateadd(month,0, @fecha_inicio))))
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_fin)) then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,(dateadd(month,0, @fecha_fin))-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime,b.[FANT])<(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])<=(dateadd(month,0, @fecha_fin))then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_6
into #0_energia_base_rec35
FROM dbo.Base_historica b
WHERE (((convert(float,b.[NIS])) Not In (3032208,3032209,3032210,3032211,3032212,3032213,3 032214,3032216,3032217,3032218,3032219,3032220,303 2221,3032222,3032223,3032224,3032226,3039437))) And convert(float,b.[imp_transf])<>0
--select * from #0_energia_base_rec35 order by ID
SELECT b.[ID],
(case
when convert(datetime,b.[FANT])<=@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 And convert(datetime,b.[FANT])<=@fecha_fin5 And convert(datetime, b.[FACT])>@fecha_fin5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin5))
when convert(datetime,b.[FANT])<=@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio5))
when convert(datetime,b.[FANT])<=@fecha_fin5 And convert(datetime, b.[FACT])>@fecha_fin5 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin5-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio5 And convert(datetime, b.[FACT])>@fecha_inicio5 And convert(datetime,b.[FANT])<@fecha_fin5 And convert(datetime, b.[FACT])<=@fecha_fin5 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_1,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 And convert(datetime,b.[FANT])<=@fecha_fin4 And convert(datetime, b.[FACT])>@fecha_fin4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin4))
when convert(datetime,b.[FANT])<=@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio4))
when convert(datetime,b.[FANT])<=@fecha_fin4 And convert(datetime, b.[FACT])>@fecha_fin4 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin4-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio4 And convert(datetime, b.[FACT])>@fecha_inicio4 And convert(datetime,b.[FANT])<@fecha_fin4 And convert(datetime, b.[FACT])<=@fecha_fin4 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_2,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 And convert(datetime,b.[FANT])<=@fecha_fin3 And convert(datetime, b.[FACT])>@fecha_fin3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin3))
when convert(datetime,b.[FANT])<=@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio3))
when convert(datetime,b.[FANT])<=@fecha_fin3 And convert(datetime, b.[FACT])>@fecha_fin3 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin3-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio3 And convert(datetime, b.[FACT])>@fecha_inicio3 And convert(datetime,b.[FANT])<@fecha_fin3 And convert(datetime, b.[FACT])<=@fecha_fin3 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_3,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 And convert(datetime,b.[FANT])<=@fecha_fin2 And convert(datetime, b.[FACT])>@fecha_fin2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin2))
when convert(datetime,b.[FANT])<=@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio2))
when convert(datetime,b.[FANT])<=@fecha_fin2 And convert(datetime, b.[FACT])>@fecha_fin2 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin2-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio2 And convert(datetime, b.[FACT])>@fecha_inicio2 And convert(datetime,b.[FANT])<@fecha_fin2 And convert(datetime, b.[FACT])<=@fecha_fin2 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_4,
(case
when convert(datetime,b.[FANT])<=@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 And convert(datetime,b.[FANT])<=@fecha_fin1 And convert(datetime, b.[FACT])>@fecha_fin1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day(@fecha_fin1))
when convert(datetime,b.[FANT])<=@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-@fecha_inicio1))
when convert(datetime,b.[FANT])<=@fecha_fin1 And convert(datetime, b.[FACT])>@fecha_fin1 then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,@fecha_fin1-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>@fecha_inicio1 And convert(datetime, b.[FACT])>@fecha_inicio1 And convert(datetime,b.[FANT])<@fecha_fin1 And convert(datetime, b.[FACT])<=@fecha_fin1 then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_5,
(case
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_fin))then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(Day((dateadd(month,0, @fecha_fin))))
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,convert(datetime, b.[FACT])-(dateadd(month,0, @fecha_inicio))))
when convert(datetime,b.[FANT])<=(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_fin)) then ((convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))/convert(float,(convert(datetime,b.[FACT])-convert(datetime,b.[FANT]))))*(convert(float,(dateadd(month,0, @fecha_fin))-dateadd(day,1,convert(datetime,b.[FANT]))))
when convert(datetime,b.[FANT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime, b.[FACT])>(dateadd(month,0, @fecha_inicio)) And convert(datetime,b.[FANT])<(dateadd(month,0, @fecha_fin)) And convert(datetime, b.[FACT])<=(dateadd(month,0, @fecha_fin))then (convert(float,b.[FIS_KWH_BSE])+convert(float,b.[FIS_KWH_INV]))
else 0 end)as Mes_6
into #0_energia_base_datos
FROM dbo.Base_historica b
WHERE (((convert(float,b.[NIS])) Not In (3032208,3032209,3032210,3032211,3032212,3032213,3 032214,3032216,3032217,3032218,3032219,3032220,303 2221,3032222,3032223,3032224,3032226,3039437)))
--select * from #0_energia_base_datos

Eso es la comparación que estoy haciendo, y como dije anteriormente no puedo encontrar el error, ojalá puedan ayudarme
muchas Gracias

1 Comentarios

Viejo Arcángel dijo: 07.05.12
-->
Podés emplear el SQL estándar. Eso lo aceptan todas las bases de datos.

Pero si lo que querés es migrar una BD a otra, podés seguir este tutorial: http://support.microsoft.com/kb/237980/es

Herramientas
Iniciar Sesion

Recordarme

Top de Usuarios