Autor Téma: Vylepšenie dopytu - zbavenie sa NATURAL - karteziánského súčinu  (Přečteno 308 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5848
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Mám dva "ronaké" FDQuery. Tým mám na mysli, že majú úplne rovnaké zdroje - tabuľky. Oba mi vrátia po 704 záznamov. V ďalšom kroku použijem tieto dve otázky ako zdroje na dokončenie úlohy.
Problém je v tom, že už základné tabuľky sú NATURAL. Zle zbehnú rýchlo.
Záverečný krok je žiaľ tiež NATURAL a vráti mi 7 744 (= 704 x 11 mesiacov) záznamov. To trvá dlhých 15 sek. Teraz mám 4 vlastníkov bytov. Čo bude, ak ich bude 100?
Ani v jednom prípade som nedokázal zbaviť sa NATURAL. Trápi ma hlavne ten posledný. Skúsil som v JOIN použiť aj mesiace (pole DepositPeriod), ale nezabralo to.
V konečnom výsledku mám 704 záznamov.
Prikladám grafické zobrazenie oboch FDQuery.
.
Skúšal som použiť WITH i VIEW. Bez úspechu. Jednoducho stále tam mám karteziánsky súčin.
Ak to nevyriešim, tak ten výpočet bude trvať nekonečne dlho a môžem ísť do kelu.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5848
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Už som to vyriešil. Mám tam vlastne navyše tabuľku Z_SEPA_ANALS. Bez nej to je okamžite.
To že je zbytočná som si uvedomil a overil až teraz.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.