Question : Contrôle de santé d'esprit sur la modification d'UDF

J'ai modifié mon UDF pour ajouter des taux supplémentaires pour le week-end daya et la nuit. Les taux devraient maintenant être appliqués pour le jour/nuit puis mêmes que le jour de la semaine rates.

Does ce sembler correct :
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 " de l'id= " codeSnippet831386 de
 0 d'isnull (weekenddaycost, 0)
                    PUIS
                     CAS QUAND datepart (heure, @date) entre le datepart (heure, weekenddaystart) et datepart (heure, weekenddayend)
                     PUIS
                     weekenddaycost
                     AUTREMENT
                     weekendnightcost
                     EXTRÉMITÉ
                    AUTREMENT 
                         CAS
                         QUAND datepart (heure, @date) entre le datepart (heure, weekdaystart) et datepart (heure, weekdayend)
                         PUIS weekdaycost
                         Weeknightcost D'AUTRE
                         EXTRÉMITÉ
                    EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
  D'EnergySuiteDB.dbo.Rates
  là où UtilityName=@util 
  ET @date entre EffectiveStartDate et EffectiveEndDate 
  Ordre par le desc d'identification    -- obtenir la « dernière » rangée qui couvre la date demandée.

  si @@rowcount = 0
     insérer le @tbl 
     choisir le principal 1 --EffectiveStartDate, EffectiveEndDate,
                  CAS UNE FOIS parti (DATENAME (DW, @date), 1) = « S » et <> 0 d'isnull (weekenddaycost, 0)
                       PUIS
                     CAS QUAND datepart (heure, @date) entre le datepart (heure, weekenddaystart) et datepart (heure, weekenddayend)
                     PUIS
                     weekenddaycost
                     AUTREMENT
                     weekendnightcost
                     EXTRÉMITÉ
                    AUTREMENT 
                         CAS
                         QUAND datepart (heure, @date) entre le datepart (heure, weekdaystart) et datepart (heure, weekdayend)
                         PUIS weekdaycost
                         Weeknightcost D'AUTRE
                         EXTRÉMITÉ
                       EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     D'EnergySuiteDB.dbo.Rates
     là où UtilityName=@util 
     ordre par le desc d'EffectiveEndDate   -- l'enddate le plus élevé appartient « pour ramer le 1 » tout le taux de bâche/défaut.
  retour 
EXTRÉMITÉ
class= de

Réponse : Contrôle de santé d'esprit sur la modification d'UDF

Bien, je pense qu'il a besoin de la vérification supplémentaire dans là…

Ainsi, aller voir :
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 :
CHANGER LA FONCTION [dbo]. [udf_getrates_3] (date-heure de @date, @util varchar (50))
RENVOIE la table de @tbl (ARGENT de chargerate, ARGENT de prélèvement, ARGENT de caprate, flotteur de ChargeCap, argent de StandingDayCharge)
AS
COMMENCER


  déclarer le char de @dw (1)
  placer le @dw = est parti (DATENAME (DW, @date), 1)

  déclarer le @hr international
  placer le @hr = le datepart (heure, @date)

  insérer le @tbl 
  choisir le principal 1 --EffectiveStartDate, EffectiveEndDate, 
         CAS QUAND @dw = « S » et (   (@hr entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekenddaycost, 0) <> 0)
                                  ou (@hr PAS entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekendnightcost, 0) <> 0))
              PUIS
                     CAS QUAND @hr entre le datepart (heure, weekenddaystart) et le datepart (heure, weekenddayend)
                          PUIS weekenddaycost
                          Weekendnightcost D'AUTRE
                     EXTRÉMITÉ
              AUTREMENT 
                     CAS QUAND @hr entre le datepart (heure, weekdaystart) et le datepart (heure, weekdayend)
                          PUIS weekdaycost
                          Weeknightcost D'AUTRE
                     EXTRÉMITÉ
         EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     D'EnergySuiteDB.dbo.Rates
  là où  UtilityName=@util 
  ET @date entre EffectiveStartDate et EffectiveEndDate 
  Ordre par le desc d'identification    -- obtenir la « dernière » rangée qui couvre la date demandée.

  si @@rowcount = 0
     insérer le @tbl 
     choisir le principal 1 --EffectiveStartDate, EffectiveEndDate, 
         CAS QUAND @dw = « S » et (   (@hr entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekenddaycost, 0) <> 0)
                                  ou (@hr PAS entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekendnightcost, 0) <> 0))
              PUIS
                     CAS QUAND @hr entre le datepart (heure, weekenddaystart) et le datepart (heure, weekenddayend)
                          PUIS weekenddaycost
                          Weekendnightcost D'AUTRE
                     EXTRÉMITÉ
              AUTREMENT 
                     CAS QUAND @hr entre le datepart (heure, weekdaystart) et le datepart (heure, weekdayend)
                          PUIS weekdaycost
                          Weeknightcost D'AUTRE
                     EXTRÉMITÉ
         EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     D'EnergySuiteDB.dbo.Rates
     là où UtilityName=@util 
     ordre par le desc d'EffectiveEndDate   -- l'enddate le plus élevé appartient « pour ramer le 1 » tout le taux de bâche/défaut.
  retour 
EXTRÉMITÉ
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us