Databáze > Obecné

Transformácia DataSetu

(1/6) > >>

Stanislav Hruška:
Mám dopyt na prevod riadkov na stĺpce. Vráti mi výsledok podľa obrázka. Teraz potrebujem dostať DataSet v tvare
Field0  Field1 Field2 ...
   24       1        1
   24       1        1
   36       1        1
   36       2        2
...
Ani len netuším ako na to. Ak to má riešenie, tak mi ho prosím prezraďte. Je to FB4
V prípade úspechu by som mohol vyhodiť funkciu, ktorú mám pre naplnenie VST.

Stanislav Hruška:
Vymyslel som toto
--- Kód: ---WITH F0 AS
(SELECT D.FIELD0, D.DEPOSITPERIOD DP, D.FKSERVICEPARAMETERS SP0, D.IDOWNER_FLAT OWF
FROM DEPOSITALL D
WHERE D.FIELD0 <> -1),
F1 AS
(SELECT D.FIELD1, D.DEPOSITPERIOD DP, D.FKSERVICEPARAMETERS SP1, D.IDOWNER_FLAT OWF
FROM DEPOSITALL D
WHERE D.FIELD1 <> -1),
F2 AS
(SELECT D.FIELD2, D.DEPOSITPERIOD DP, D.FKSERVICEPARAMETERS SP2, D.IDOWNER_FLAT OWF
FROM DEPOSITALL D
WHERE D.FIELD2 <> -1)
SELECT F0.SP0, F0.FIELD0, F1.SP1, F1.FIELD1, F2.SP2, F2.FIELD2
FROM F0
  INNER JOIN F1 ON F1.DP = F0.DP AND F1.OWF = F0.OWF
  INNER JOIN F2 ON F2.DP = F1.DP AND F2.OWF = F1.OWF
--- Konec kódu ---
Tých (SELECT ...) tam môže byť aj 30. Keďže to bude robiť počítač v cykle, tak mi to asi môže byť jedno.
Otázne je, či tam nebude problém s výkonom - časom.

Stanislav Hruška:
Mám doplňujúcu otázku.

* Základný dataset DepositAll mám zoradený
* Môžem sa spoľahnúť, že všetky dopyty vo WITH a konečný výsledok budú správne zoradené?
* Alebo musím samostatne zoradiť každý dopyt?Ďakujem.

Jan Fiala:
Spoléhat se na to, že se vrátí data seřazená je naivita. V dotazu spojuješ tabulky, kdy je každá seřazená jinak, optimalizátor si provede vlastní dotazy na pozadí, aby to zrychlil, takže výsledek nemusí být dle očekávání.
Samozřejmě když vybíráš jednu tabulku s primary clusterovaným indexem, tak máš hodně velkou pravděpodobnost, že se ti to seřazené vrátí.

Stanislav Hruška:
Ďakujem za vysvetlenie. Doplním si to tam.
Na tu optimalizáciu som si vôbec nespomenul.

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi