Vraag : Verwarrende SQL

Ik tring om een verklaring van het Geval in SQL te doen.  Ik wil het ongeveer zoals wanneer zijn in Java dat wij als het project 101 is hebben gezegd, dan doen dit.  Anders als het project 102 is, doe iets anders.  Anders als het project 103 is, doe dit.  Ik kan niet de syntaxis berekenen.  Hier is wat ik nu heb:

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 

Project, 
[pjt_entity] + ' - 'ALS Taak, 

Som (geval wanneer [acct] = ' [eenheden] EIND ANDERS 0) directlabor'then ALS ZinHrs,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [EENHEDEN] Eind ANDERS 0) ALS SubHrs,
Som (geval wanneer ([acct] = ' direct labor') toen [bedrag] anders 0 Eind `) ALS Arbeid,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [BEDRAG] Eind ANDERS 0) ZOALS Sub,

Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind EQUIPMENT) ALS Materiaal, 
Som (geval wanneer [acct] = ' fabrication toen [bedrag] Eind ANDERS 0) ALS Vervaardiging,
Som (geval wanneer [acct] = ' material toen [bedrag] Eind ANDERS 0) ALS Materiaal, 

Som (geval wanneer ([acct] = ' misc odcs of [acct] = ' EDUC/TRAIN of [ACCT] = ' SUPPLIES') toen [bedrag] eind anders 0) ALS MiscODC,
Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind TRAVEL) ALS Reis, 
Som (geval wanneer ([acct] Als „alloc%“ en [acct] <>'ALLOCFEE') toen [BEDRAG] eind anders 0) ZOALS Indirect,
Som (geval wanneer [ACCT] = ' [BEDRAG] anders 0 eind ALLOCFEE'then) ALS Prijs,
Som (bedrag) ALS TotalCost 

VAN [.dbo van MyDatabase]. [MyTable]
WAAR ((fiscalno >= „200812“ en (fiscalno) <=@fiscalno) EN ((acct) <>'BTD'))
GROEP DOOR project, [pjt_entity] + ' - '
HEBBEND ((@proj = „space102“)) 
ORDE DOOR project, [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

Project, 
[pjt_entity] + ' - 'ALS Taak, 

Som (geval wanneer [acct] = ' [eenheden] EIND ANDERS 0) directlabor'then ALS ZinHrs,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [EENHEDEN] Eind ANDERS 0) ALS SubHrs,
Som (geval wanneer ([acct] = ' directlabor') toen [bedrag] Eind anders 0) ALS Arbeid,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [BEDRAG] Eind ANDERS 0) ZOALS Sub,

Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind EQUIPMENT) ALS Materiaal, 
Som (geval wanneer [acct] = ' fabrication toen [bedrag] Eind ANDERS 0) ALS Vervaardiging,
Som (geval wanneer [acct] = ' material toen [bedrag] Eind ANDERS 0) ALS Materiaal, 

Som (geval wanneer ([acct] = ' misc odcs of [acct] = ' EDUC/TRAIN of [ACCT] = ' SUPPLIES') toen [bedrag] eind anders 0) ALS MiscODC,
Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind TRAVEL) ALS Reis, 
Som (geval wanneer ([acct] Als „alloc%“ en [acct] <>'ALLOCFEE') toen [BEDRAG] eind anders 0) ZOALS Indirect,
Som (geval wanneer [ACCT] = ' [BEDRAG] anders 0 eind ALLOCFEE'then) ALS Prijs,
Som (bedrag) ALS TotalCost 

VAN [.dbo van MyDatabase]. [MyTable]
WAAR ((fiscalno >= „201001“ en (fiscalno) <=@fiscalno) EN ((acct) <>'BTD'))
GROEP DOOR project, [pjt_entity] + ' - '
HEBBEND ((@proj = „space101“)) 
ORDE DOOR project, [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

Project, 
[pjt_entity] + ' - 'ALS Taak, 

Som (geval wanneer [acct] = ' [eenheden] EIND ANDERS 0) directlabor'then ALS ZinHrs,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [EENHEDEN] Eind ANDERS 0) ALS SubHrs,
Som (geval wanneer ([acct] = ' directlabor') toen [bedrag] Eind anders 0) ALS Arbeid,
Som (geval wanneer ([ACCT] = ' SUBCONTRACT of [ACCT] = ' HEI of [ACCT] = ' NGTS of [acct] = ' ANALEX') toen [BEDRAG] Eind ANDERS 0) ZOALS Sub,

Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind EQUIPMENT) ALS Materiaal, 
Som (geval wanneer [acct] = ' fabrication toen [bedrag] Eind ANDERS 0) ALS Vervaardiging,
Som (geval wanneer [acct] = ' material toen [bedrag] Eind ANDERS 0) ALS Materiaal, 

Som (geval wanneer ([acct] = ' misc odcs of [acct] = ' EDUC/TRAIN of [ACCT] = ' SUPPLIES') toen [bedrag] eind anders 0) ALS MiscODC,
Som (geval wanneer [ACCT] = ' toen [BEDRAG] ANDERS 0 Eind TRAVEL) ALS Reis, 
Som (geval wanneer ([acct] Als „alloc%“ en [acct] <>'ALLOCFEE') toen [BEDRAG] eind anders 0) ZOALS Indirect,
Som (geval wanneer [ACCT] = ' [BEDRAG] anders 0 eind ALLOCFEE'then) ALS Prijs,
Som (bedrag) ALS TotalCost 

VAN [.dbo van MyDatabase]. [MyTable]
WAAR ((fiscalno >= „201001“ en (fiscalno) <=@fiscalno) EN ((acct) <>'BTD'))
GROEP DOOR project, [pjt_entity] + ' - '
HEBBEND ((@proj = „space106“)) 
ORDE DOOR project, [pjt_entity] + ' - ';

Antwoord : Verwarrende SQL

U zou dit in een opgeslagen procedure of iets moeten doen en gebruikt:

ALS (@proj = „1“)
BEGIN

EIND

ALS (@proj = „2“)
BEGIN

EIND

Etc.…
Andere oplossingen  
 
programming4us programming4us