Autor Téma: Nezmyselný výsledok pri CASE  (Přečteno 728 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7413
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Nezmyselný výsledok pri CASE
« kdy: 18-10-2023, 22:16:14 »

Mám nižšie uvedený kód. Problém je v tom, že G1 a G2 majú totožné výsledky. Ak to dám priamo proti tabuľke, tak sú samozrejme rôzne. Neviem prísť na dôvod tohto nezmyslu. Vždy sú ťahané hodnoty podľa T2. Viď obrázok.
Kód: [Vybrat]
WITH TM AS (SELECT DISTINCT M.TEAM1FK AS TEAMFK FROM MATCHES M WHERE M.ROUNDFK = 10568),
  R AS (SELECT M.ROUNDFK, M.TEAM1FK, M.TEAM2FK,
   CASE WHEN M.TEAM1FK = TM.TEAMFK THEN M.GOAL1 + M.GOAL2 END AS G1,
   CASE WHEN M.TEAM2FK = TM.TEAMFK THEN M.GOAL2 + M.GOAL1 END AS G2,
********
FROM MATCHES M
 INNER JOIN TEAM_NAMES N1 ON N1.TEAMFK = M.TEAM1FK
 INNER JOIN TEAM_NAMES N2 ON N2.TEAMFK = M.TEAM2FK
 INNER JOIN TM ON TM.TEAMFK = M.TEAM1FK OR TM.TEAMFK = M.TEAM2FK
 INNER JOIN ROUNDS R ON M.ROUNDFK = R.ROUNDID
 INNER JOIN SEASONS S ON R.SEASONFK = S.SEASONID
Už som s tým stratil veľa hodín. Má niekto nejaké tušenie prečo to tak je?
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7413
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Nezmyselný výsledok pri CASE
« Odpověď #1 kdy: 19-10-2023, 12:48:33 »
Taká perlička k tomu. Dané údaje zobrazujem dvoma spôsobmi. Základný text je rovnaký. Je tam rozdiel v jednej časti. K tej som sa ani nedostal.
V jednom prípade to funguje podľa očakávania, v druhom to dáva nezmyselne rovnaké výsledky.
Taká akademická otázka: Môžu generované polia, v rámci jediného SELECT-u, ovplyvniť správanie polí pred nimi?
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7413
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Nezmyselný výsledok pri CASE
« Odpověď #2 kdy: 19-10-2023, 13:25:42 »
Problém zmizol sám od seba.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Jan Fiala

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 6
    • Verze Delphi: 10.4.1
    • PSPad editor
Re:Nezmyselný výsledok pri CASE
« Odpověď #3 kdy: 19-10-2023, 18:22:02 »
Excellent
Rated 2 times
Proste staci na tvuj dotaz hned nedeagovat, chvili pockat a problem sam zmizi :-D

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7413
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Nezmyselný výsledok pri CASE
« Odpověď #4 kdy: 19-10-2023, 18:32:44 »
Ja som presvedčený, že to tak robíte ;)
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.