Databáze > Firebird a Interbase
Zostavenie CASE
(1/1)
Stanislav Hruška:
Mám takéto výsledky
--- Kód: --- T1 T2 Date Rematch G1 G2 HomeT
19 517 39 1.1.2006 FALSE 3 0 517
1 3155 517 6.7.2006 TRUE 0 3 517
2 3158 517 16.7.2006 TRUE 0 1 517
3 1154 517 11.7.2006 TRUE 3 0 517
4 1041 517 31.7.2006 TRUE 0 3 517
5 1262 517 19.9.2006 TRUE 1 4 517
6 1270 517 26.7.2006 TRUE 2 0 517
7 3157 517 15.8.2006 TRUE 0 0 517
8 402 517 10.8.2006 TRUE 0 2 517
9 3160 517 5.8.2006 TRUE 1 2 517
10 3161 517 4.9.2006 TRUE 4 0 517
11 978 517 30.8.2006 TRUE 3 1 517
12 781 517 24.9.2006 TRUE 2 3 517
13 3153 517 14.9.2006 TRUE 2 3 517
14 3159 517 9.9.2006 TRUE 2 0 517
15 376 517 20.8.2006 TRUE 2 4 517
16 458 517 21.7.2006 TRUE 1 2 517
17 914 517 29.9.2006 TRUE 1 2 517
18 2361 517 25.8.2006 TRUE 2 2 517
19 39 517 1.7.2006 TRUE 3 0 517
--- Konec kódu ---
T1 - Team1, T2 - Team2, G1 a G2 góly, HomeT - domáce družstvo.
Hodnota S.POINTSWON = 3
--- Kód: ---// Home1 = ' M.TEAM1FK = TM.HOMETEAM ';
// T1 = ' M.TEAM1FK = TM.TEAMFK AND M.TEAM1FK = TM.HOMETEAM ';
// T2 = ' M.TEAM2FK = TM.TEAMFK AND M.TEAM2FK = TM.HOMETEAM ';
Result :=
' CASE'+
' WHEN' + Home1 + 'AND ((' + T1 + 'AND M.GOAL1 > M.GOAL2) OR (' + T2 + 'AND M.GOAL1 < M.GOAL2)) THEN S.POINTSWON'+
--- Konec kódu ---
Potrebujem spočítať body pre domáce družstvo. Dostanem hodnotu 47. To sú riadky 1 - 19. Potrebujem tam mať 50. Neviem tam dostať aj prvý riadok 19. Podľa mojej analýzy sú podmienky pre všetky riadky rovnaké. FB si to zjavne nemyslí :'( Je tam v "rezerve" REMATCH, ale nevidím, ako by som to mohol zúžitkovať.
Všetky moje pokusy skončili totálnymi nezmyslami.
Stanislav Hruška:
Malá oprava. Kašlite na body. Moje riešenie mi vráti 11 víťazstiev. Ale je ich tam 12!
Stanislav Hruška:
Už som to našiel
--- Kód: --- CASE WHEN (M.TEAM1FK = TM.TEAMFK AND TM.TEAMFK = M.HOMETEAM AND M.GOAL1 > M.GOAL2) OR (M.TEAM2FK = TM.TEAMFK AND M.TEAM2FK = M.HOMETEAM AND M.GOAL1 < M.GOAL2) THEN 1 ELSE 0 END AS WF
--- Konec kódu ---
Viď M.HOMETEAM
Navigace
[0] Seznam témat
Přejít na plnou verzi