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