Autor Zpráva
MilanJ
Profil
V db MySQL mám několik tabulek a nevím si rady s konstrukcí SQL dotazu, který vytáhne a setřídí potřebná data.
Asi na tom nebude nic těžkého, přesto mi to nejde.

Mám:

- tabulku firmy, obsahující ič_firmy,název_firmy,hlavní_kód_oboru_činnosti,popis_oboru_činno sti výsledek_schválení
- tabulku kody, obsahující kód_oboru činnosti, ič_firmy

Každá firma má název, IČ, hlavní obor činnosti a další obory činnosti. Obory činnosti jsou identifikovány kódem a popisem oboru činnosti.

Potřebuji následující výstup:
Seznam firem setříděný podle oboru činnosti vzestupně tak, že se seřadí první kód ke kterému náleží nejméně jedna firma + seznam firem k tomuto kódu náležící. Ke každému kódu s nejméně jednou firmou přiřadit seznam firem dle abecedy

Pro názornost:


001 Dodávka stavební chemie Lovesa, s.r.o.
Cihelna Holice, a.s.
Mapei, a.s.
002 Opravy stavebních strojů Catterpilar, s.r.o.
Zetor, a.s.
123 Cathering Lahůdkářství Staněk
Mahler, s.r.o.
...
...
...


Opravdu nevím jak na to. Děkuji
Kajman_
Profil *
Ale nedělal bych to nijak složitě, prostě sql dotaz vrátí i všechny kódy a v aplikaci jen nevypíšete kód, pokud bude stejný jako naposledy zpracovávaný.

select f.hlavni_kod_oboru kodob, f.nazev_firmy from firmy f
union
select k.kod_oboru kodob, f.nazev_firmy from firmy f, kody k where k.ic_firmy=f.ic_firmy order by kodob, f.nazev_firmy
tiso
Profil
MilanJ
Nemáš dojem že tie tabuľky máš zle navrhnuté?
MilanJ
Profil
tiso
No...nejsem žádný odborník, to je pravda, nicméně tabulky mají logiku, mám jich mnohem víc, to co jsem tu popsal je jen zlomek.
Slovo RELACE mi není zase tak úplně neznámé, přesto v SQL nejsem moc kovanej.
tiso
Profil
Ani ja nie, ale mi to nesedí ako to máš spravené. Nepoznám súvislosti, takže neviem lepšie reagovať...
Loyza
Profil *
hlavní_kód_oboru_činnosti,popis_oboru_činnosti
Tohle je špatně. tahle tabulka není ve 3. normální formě, aby byla ve třetí normální formě měla by se rozložit na dvě tabulky.
Pokud se někde v databázi objeví něco více než jednou tak je cosi shnilého. V tomto případě si myslím, že ve sloupci popis_oboru_činnosti budou některé informace vícekrát.
Toto téma je uzamčeno. Odpověď nelze zaslat.