Vraag : De Controle van de geestelijke gezondheid bij de Wijziging UDF

Ik heb mijn UDF gewijzigd om extra tarieven voor weekenddaya en de nacht toe te voegen. De tarieven zouden nu voor dag/nacht toen zelfde moeten worden toegepast zoals de weekdag rates.

Does deze correcte blik:
" codeBody "
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
USE [EnergySuiteDB]
GA
/****** Heb bezwaar:  UserDefinedFunction [dbo]. [udf_getrates_3] de Datum van het Manuscript: het 15:37 van 07/21/2010: 38 ******/
VASTGESTELDE ANSI_NULLS 
GA
PLAATS QUOTED_IDENTIFIER
GA
--*********************** FUNCTIE ***********************--
VERANDER FUNCTIE [dbo]. [udf_getrates_3] (datetime @date, varchar @util (50))
Van de WINST @tbl- lijst (chargerate GELD, heffingsGELD, caprate GELD, vlotter ChargeCap, geld StandingDayCharge)
ZOALS
BEGIN
  neem @tbl op 
  selecteer Bovenkant 1 --EffectiveStartDate, EffectiveEndDate, 
               COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER verlaten (DATENAME (DW, @date), 1) = „S“ en isnull (weekenddaycost, 0) <> 0
                    DAN
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER datepart (uur, @date) tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend)
                     DAN
                     weekenddaycost
                     ANDERS
                     weekendnightcost
                     EIND
                    ANDERS 
                         COMPUTER-AIDED SOFTWARE ENGINEERING
                         WANNEER datepart (uur, @date) tussen datepart (uur, weekdaystart) en datepart (uur, weekdayend)
                         DAN weekdaycost
                         ANDERS weeknightcost
                         EIND
                    EIND, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
  VAN EnergySuiteDB.dbo.Rates
  waar UtilityName=@util 
  EN @date tussen EffectiveStartDate en EffectiveEndDate 
  Orde door identiteitskaart desc    -- krijg de „laatste“ rij die de gevraagde datum behandelt.

  als @@rowcount = 0
     tussenvoegsel @tbl 
     selecteer Bovenkant 1 --EffectiveStartDate, EffectiveEndDate,
                  COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER verlaten (DATENAME (DW, @date), 1) = „S“ en isnull (weekenddaycost, 0) <> 0
                       DAN
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER datepart (uur, @date) tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend)
                     DAN
                     weekenddaycost
                     ANDERS
                     weekendnightcost
                     EIND
                    ANDERS 
                         COMPUTER-AIDED SOFTWARE ENGINEERING
                         WANNEER datepart (uur, @date) tussen datepart (uur, weekdaystart) en datepart (uur, weekdayend)
                         DAN weekdaycost
                         ANDERS weeknightcost
                         EIND
                       EIND, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     VAN EnergySuiteDB.dbo.Rates
     waar UtilityName=@util 
     orde door EffectiveEndDate desc   -- hoogste enddate behoort tot „rij 1“ allen die/blijft tarief in gebreke behandelen.
  terugkeer 
EIND

Antwoord : De Controle van de geestelijke gezondheid bij de Wijziging UDF

Goed, denk ik het daar het extra controleren in… vergt

Zo, hebben een blik bij:
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
VERANDER FUNCTIE [dbo]. [udf_getrates_3] (datetime @date, varchar @util (50))
Van de WINST @tbl- lijst (chargerate GELD, heffingsGELD, caprate GELD, vlotter ChargeCap, geld StandingDayCharge)
ZOALS
BEGIN


  verklaar klusje @dw (1)
  plaats @dw = links (DATENAME (DW, @date), 1)

  verklaar @hr int.
  plaats @hr = datepart (uur, @date)

  neem @tbl op 
  selecteer Bovenkant 1 --EffectiveStartDate, EffectiveEndDate, 
         COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @dw = „S“ en (   (@hr tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend) en isnull (weekenddaycost, 0) <> 0)
                                  of (@hr Tussen geen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend) en isnull (weekendnightcost, 0) <> 0))
              DAN
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @hr tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend)
                          DAN weekenddaycost
                          ANDERS weekendnightcost
                     EIND
              ANDERS 
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @hr tussen datepart (uur, weekdaystart) en datepart (uur, weekdayend)
                          DAN weekdaycost
                          ANDERS weeknightcost
                     EIND
         EIND, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
  VAN   EnergySuiteDB.dbo.Rates
  waar  UtilityName=@util 
  EN @date tussen EffectiveStartDate en EffectiveEndDate 
  Orde door identiteitskaart desc    -- krijg de „laatste“ rij die de gevraagde datum behandelt.

  als @@rowcount = 0
     tussenvoegsel @tbl 
     selecteer Bovenkant 1 --EffectiveStartDate, EffectiveEndDate, 
         COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @dw = „S“ en (   (@hr tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend) en isnull (weekenddaycost, 0) <> 0)
                                  of (@hr Tussen geen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend) en isnull (weekendnightcost, 0) <> 0))
              DAN
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @hr tussen datepart (uur, weekenddaystart) en datepart (uur, weekenddayend)
                          DAN weekenddaycost
                          ANDERS weekendnightcost
                     EIND
              ANDERS 
                     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER @hr tussen datepart (uur, weekdaystart) en datepart (uur, weekdayend)
                          DAN weekdaycost
                          ANDERS weeknightcost
                     EIND
         EIND, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     VAN EnergySuiteDB.dbo.Rates
     waar UtilityName=@util 
     orde door EffectiveEndDate desc   -- hoogste enddate behoort tot „rij 1“ allen die/blijft tarief in gebreke behandelen.
  terugkeer 
EIND
Andere oplossingen  
 
programming4us programming4us