1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 6: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
USE [EnergySuiteDB] GEHEN /****** Gegenstand: UserDefinedFunction [dbo]. [udf_getrates_3] Index-Datum: 07/21/2010 15:37: 38 ******/ ANSI_NULLS AN EINSTELLEN GEHEN QUOTED_IDENTIFIER AN EINSTELLEN GEHEN --*********************** FUNKTION ***********************-- FUNKTION [dbo] ÄNDERN. [udf_getrates_3] (@date Datum/Uhrzeit, @util varchar (50)) BRINGT @tbl Tabelle zurück (chargerate GELD, Steuer GELD, caprate GELD, ChargeCap Hin- und Herbewegung, StandingDayCharge Geld) WIE ANFANGEN @tbl einsetzen Oberseite 1 vorwählen --EffectiveStartDate, EffectiveEndDate, FALL, WENN Sie verlassen werden (DATENAME (DW, @date), 1) = „S“ und isnull (weekenddaycost, 0) <> 0 DANN FALL, WENN datepart (Stunde, @date) zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) DANN weekenddaycost SONST weekendnightcost ENDE SONST FALL WENN datepart (Stunde, @date) zwischen datepart (Stunde, weekdaystart) und datepart (Stunde, weekdayend) DANN weekdaycost SONST weeknightcost ENDE ENDE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0) VON EnergySuiteDB.dbo.Rates wo UtilityName=@util UND @date zwischen EffectiveStartDate und EffectiveEndDate Auftrag durch Identifikation desc -- die „letzte“ Reihe erhalten, die das erbetene Datum umfaßt. wenn @@rowcount = 0 @tbl einsetzen Oberseite 1 vorwählen --EffectiveStartDate, EffectiveEndDate, FALL, WENN Sie verlassen werden (DATENAME (DW, @date), 1) = „S“ und isnull (weekenddaycost, 0) <> 0 DANN FALL, WENN datepart (Stunde, @date) zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) DANN weekenddaycost SONST weekendnightcost ENDE SONST FALL WENN datepart (Stunde, @date) zwischen datepart (Stunde, weekdaystart) und datepart (Stunde, weekdayend) DANN weekdaycost SONST weeknightcost ENDE ENDE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0) VON EnergySuiteDB.dbo.Rates wo UtilityName=@util Auftrag durch EffectiveEndDate desc -- höchstes enddate gehört, „die 1“ alle Bedeckung/die Forderungsausfallquote zu rudern. Rückkehr ENDE
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 6: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
FUNKTION [dbo] ÄNDERN. [udf_getrates_3] (@date Datum/Uhrzeit, @util varchar (50)) ZURÜCKBRINGT @tbl Tabelle (chargerate GELD, Steuer GELD, caprate GELD, ChargeCap Hin- und Herbewegung, StandingDayCharge Geld) WIE ANFANGEN @dw Putzfrau erklären (1) @dw einstellen = verließ (DATENAME (DW, @date), 1) @hr int erklären @hr = datepart (Stunde, @date) einstellen @tbl einsetzen Oberseite 1 vorwählen --EffectiveStartDate, EffectiveEndDate, FALL, WENN @dw = „S“ und ( (@hr zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) und isnull (weekenddaycost, 0) <> 0) oder (@hr NICHT zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) und isnull (weekendnightcost, 0) <> 0)) DANN FALL, WENN @hr zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) DANN weekenddaycost SONST weekendnightcost ENDE SONST FALL, WENN @hr zwischen datepart (Stunde, weekdaystart) und datepart (Stunde, weekdayend) DANN weekdaycost SONST weeknightcost ENDE ENDE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0) VON EnergySuiteDB.dbo.Rates wo UtilityName=@util UND @date zwischen EffectiveStartDate und EffectiveEndDate Auftrag durch Identifikation desc -- die „letzte“ Reihe erhalten, die das erbetene Datum umfaßt. wenn @@rowcount = 0 @tbl einsetzen Oberseite 1 vorwählen --EffectiveStartDate, EffectiveEndDate, FALL, WENN @dw = „S“ und ( (@hr zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) und isnull (weekenddaycost, 0) <> 0) oder (@hr NICHT zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) und isnull (weekendnightcost, 0) <> 0)) DANN FALL, WENN @hr zwischen datepart (Stunde, weekenddaystart) und datepart (Stunde, weekenddayend) DANN weekenddaycost SONST weekendnightcost ENDE SONST FALL, WENN @hr zwischen datepart (Stunde, weekdaystart) und datepart (Stunde, weekdayend) DANN weekdaycost SONST weeknightcost ENDE ENDE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0) VON EnergySuiteDB.dbo.Rates wo UtilityName=@util Auftrag durch EffectiveEndDate desc -- höchstes enddate gehört, „die 1“ alle Bedeckung/die Forderungsausfallquote zu rudern. Rückkehr ENDE