Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL dotaz

MAm tabulku kde su osobne udaje, napr. cislo , meno atd atd. Nasledne je v druhej tabulke cislo (z prvej tabulky - kluc), a typ auta a spz. Niekto ma jdno, niekto 3 nizkto ziadne . . . ako zadat dotaz, aby mi k vypisu do riadku zadal polozky z prvej tabulky (to nieje problem) ale pridat k tomu do toho isteho riadku aj polozky z tabulky aut - teda ten co ma 3 auta bude mat napr plus 2x3 stlpce - typ a spz. Kazda osoba z [rvej tabulky musi mat iba jeden riadok. Ak by som to mohol mat v tolko riadkoch kolko ma kazdy aut, to sa mi podarilo, ale do jedneho riadku . . . . da sa to vobec? a musi to by iba select, nie nejaka procedura . . .

Předmět Autor Datum
Takto se to nedělá. SQL dotaz vrací seznam aut pro toho člověka, tedy 3 řádky, nezvyšuje se počet sl…
Jan Fiala 07.03.2020 20:37
Jan Fiala
MS SQL, možno sa to tak nerobí, ja som si to nevymyslel, do viac riadkov nieje problém, nejaké zákla…
Llubik 08.03.2020 19:08
Llubik
Ty jsi tiskový mluvčí truhlika nebo co?
host 08.03.2020 19:16
host
Ano, ta finta se jmenuje třeba dynamicky SQL dotaz. Prostě si dotaz poskládáš do příkazu v proměnné…
Jan Fiala 08.03.2020 20:48
Jan Fiala
Máš v té tabulce SPZ nějak označeno, která je 1., 2., 3.? Co když tam budou 4 SPZ, 5,... ?
pita1 10.03.2020 17:14
pita1
Nie, pocet nieje, to je samostatna tabulka, jedine select na pocet riadkov pre kazdeho zamestnanca
truhlik 11.03.2020 16:14
truhlik
Kdyby v tabulce auto bylo pořadí = 1,2,3 šlo by napsat select majitel.jmeno,prvni.typ,prvni.spz,dru… poslední
pita1 11.03.2020 17:00
pita1
a nějaký left/right join by nešel? SELECT name, age from People right join Cars on People.ID_Car =…
asdsada 11.03.2020 16:06
asdsada

Ano, ta finta se jmenuje třeba dynamicky SQL dotaz. Prostě si dotaz poskládáš do příkazu v proměnné a ten pak spustíš.
Takže nejprve si SQL dotazem zjistíš, max. počet sloupců budeš potřebovat, pak provedeš SQL dotaz, který ti to vybere pod sebe a ty to pak následným skriptem naplníš do tabulky a vrátíš.

MS SQL umí pivot tables, takže si spusť help a nastuduj syntaxi.

Kdyby v tabulce auto bylo pořadí = 1,2,3
šlo by napsat

select majitel.jmeno,prvni.typ,prvni.spz,druhe.typ,druhe.spz,treti.typ,treti.spz
from majitel
left join auto as prvni
on majitel.id=prvni.id and prvni.poradi=1
left join auto as druhe
on majitel.id=druhe.id and druhe.poradi=2
left join auto as treti
on majitel.id=treti.id and treti.poradi=3

Zpět do poradny Odpovědět na původní otázku Nahoru