Frage : VerwirrenSQL

Ich tring, um eine Fallaussage in SQL zu tun.  Ich wünsche ihn Art wie sein, wenn in Java wir, wenn Projekt 101 ist sagen, dann dies tun.  Sonst, wenn Projekt 102 ist, noch etwas tun.  Sonst, wenn Projekt 103 ist, dies tun.  Ich kann die Syntax nicht herausfinden.  Ist hier, was ich jetzt habe:

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:
SELECT 

Projekt, 
[pjt_entity] + ' - 'ALS Aufgabe, 

Summe (Fall, wenn [acct] = ' [Maßeinheiten] SONST 0 ENDE) directlabor'then, ALS ZinHrs,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MASSEINHEITEN] SONST 0 Ende) ALS SubHrs,
Summe (Fall, wenn ([acct] = ' direktes `labor') dann [Menge] sonst 0 Ende) ALS Arbeit,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MENGE] SONST 0 Ende) ALS Unterseeboot,

Summe (Fall, wenn [ACCT] = ' EQUIPMENT dann [MENGE] SONST 0 Ende) ALS Ausrüstung, 
Summe (Fall, wenn [acct] = ' fabrication dann [Menge] SONST 0 Ende) ALS Herstellung,
Summe (Fall, wenn [acct] = ' material dann [Menge] SONST 0 Ende) ALS Material, 

Summe (Fall, wenn ([acct] = ' Verschiedener odcs oder [acct] = ' EDUC/TRAIN oder [ACCT] = ' SUPPLIES') dann [Menge] sonst 0 Ende) ALS MiscODC,
Summe (Fall, wenn [ACCT] = ' TRAVEL dann [MENGE] SONST 0 Ende) ALS Spielraum, 
Summe (Fall, wenn ([acct] wie „alloc%“ und [acct] <>'ALLOCFEE') dann [MENGE] sonst 0 Ende) WIE indirekt,
Summe (Fall, wenn [ACCT] = ' ALLOCFEE'then [MENGE] sonst 0 Ende) ALS Gebühr,
Summe (Menge) ALS TotalCost 

VON [MyDatabase] .dbo. [MyTable]
WO ((fiscalno >= „200812“ und (fiscalno) <=@fiscalno) UND ((acct) <>'BTD'))
GRUPPE DURCH Projekt, [pjt_entity] + ' - '
HABEN ((@proj = „space102“)) 
AUFTRAG DURCH Projekt, [pjt_entity] + ' - ';


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:
SELECT

Projekt, 
[pjt_entity] + ' - 'ALS Aufgabe, 

Summe (Fall, wenn [acct] = ' [Maßeinheiten] SONST 0 ENDE) directlabor'then, ALS ZinHrs,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MASSEINHEITEN] SONST 0 Ende) ALS SubHrs,
Summe (Fall, wenn ([acct] = ' directlabor') dann [Menge] sonst 0 Ende) ALS Arbeit,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MENGE] SONST 0 Ende) ALS Unterseeboot,

Summe (Fall, wenn [ACCT] = ' EQUIPMENT dann [MENGE] SONST 0 Ende) ALS Ausrüstung, 
Summe (Fall, wenn [acct] = ' fabrication dann [Menge] SONST 0 Ende) ALS Herstellung,
Summe (Fall, wenn [acct] = ' material dann [Menge] SONST 0 Ende) ALS Material, 

Summe (Fall, wenn ([acct] = ' Verschiedener odcs oder [acct] = ' EDUC/TRAIN oder [ACCT] = ' SUPPLIES') dann [Menge] sonst 0 Ende) ALS MiscODC,
Summe (Fall, wenn [ACCT] = ' TRAVEL dann [MENGE] SONST 0 Ende) ALS Spielraum, 
Summe (Fall, wenn ([acct] wie „alloc%“ und [acct] <>'ALLOCFEE') dann [MENGE] sonst 0 Ende) WIE indirekt,
Summe (Fall, wenn [ACCT] = ' ALLOCFEE'then [MENGE] sonst 0 Ende) ALS Gebühr,
Summe (Menge) ALS TotalCost 

VON [MyDatabase] .dbo. [MyTable]
WO ((fiscalno >= „201001“ und (fiscalno) <=@fiscalno) UND ((acct) <>'BTD'))
GRUPPE DURCH Projekt, [pjt_entity] + ' - '
HABEN ((@proj = „space101“)) 
AUFTRAG DURCH Projekt, [pjt_entity] + ' - ';


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:
SELECT

Projekt, 
[pjt_entity] + ' - 'ALS Aufgabe, 

Summe (Fall, wenn [acct] = ' [Maßeinheiten] SONST 0 ENDE) directlabor'then, ALS ZinHrs,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MASSEINHEITEN] SONST 0 Ende) ALS SubHrs,
Summe (Fall, wenn ([acct] = ' directlabor') dann [Menge] sonst 0 Ende) ALS Arbeit,
Summe (Fall, wenn ([ACCT] = ' SUBCONTRACT oder [ACCT] = ' HEI oder [ACCT] = ' NGTS oder [acct] = ' ANALEX') dann [MENGE] SONST 0 Ende) ALS Unterseeboot,

Summe (Fall, wenn [ACCT] = ' EQUIPMENT dann [MENGE] SONST 0 Ende) ALS Ausrüstung, 
Summe (Fall, wenn [acct] = ' fabrication dann [Menge] SONST 0 Ende) ALS Herstellung,
Summe (Fall, wenn [acct] = ' material dann [Menge] SONST 0 Ende) ALS Material, 

Summe (Fall, wenn ([acct] = ' Verschiedener odcs oder [acct] = ' EDUC/TRAIN oder [ACCT] = ' SUPPLIES') dann [Menge] sonst 0 Ende) ALS MiscODC,
Summe (Fall, wenn [ACCT] = ' TRAVEL dann [MENGE] SONST 0 Ende) ALS Spielraum, 
Summe (Fall, wenn ([acct] wie „alloc%“ und [acct] <>'ALLOCFEE') dann [MENGE] sonst 0 Ende) WIE indirekt,
Summe (Fall, wenn [ACCT] = ' ALLOCFEE'then [MENGE] sonst 0 Ende) ALS Gebühr,
Summe (Menge) ALS TotalCost 

VON [MyDatabase] .dbo. [MyTable]
WO ((fiscalno >= „201001“ und (fiscalno) <=@fiscalno) UND ((acct) <>'BTD'))
GRUPPE DURCH Projekt, [pjt_entity] + ' - '
HABEN ((@proj = „space106“)) 
AUFTRAG DURCH Projekt, [pjt_entity] + ' - ';

Antwort : VerwirrenSQL

Sie müssen dies in einem gespeicherten Verfahren oder in etwas tun und verwenden:

WENN (@proj = „1“)
ANFANGEN

ENDE

WENN (@proj = „2“)
ANFANGEN

ENDE

Und so weiter…
Weitere Lösungen  
 
programming4us programming4us