
SQL_Pomoc
Zdravím,
mám nejspíše úplně triviální dotaz. Dělám databázi v Oracle. Zasekl jsem se nad úlohami a bohužel nemohu přijít, jak vytvořit dva pohledy.
Zkouším si vytvořit databázi, pro hotel.
1)Potřebuji vytvořit pohled, pro hotel. Kde mi to zobrazí dostupné pokoje, ale potřebuji to porovnat s aktuálním datem. Pokud je nějaký obsazený, aby se nezobrazil.
2) Mám v tabulce několik zákazníků, kteří udělali několik objednávek. Potřebuji nějakou funkcí sečíst opakující se data(Jméno+Příjmení) v tabulce, zkoušel jsem to přes sumu, ale vůbec mi to nejde.
3) Následně, jakou funkcí byste udělali filtr, který mi seřadí klienty od toho nejčastějšího?
Případně bych mohl postnout Data Model.
Pokud by vás něco napadlo, budu vděčný.
Předem vše děkuji a předem se omlouvám, pokud jsem se špatně vyjádřil.
Díky
Nějak podobně se snažím přijít na to, jak sečíst, opakující se ID_Navstevnik, abych to mohl seřadit, dle největšího počtu Objednávek. Bohužel s k tomu nemohu dopracovat. Poté udělat ten filtr.
Udělám to takto, abych to seřadil dle ID.
Select o.ID_Navstevnik, Count(*)
From Objednavka o
Group by o.ID_Navstevnik
Order by Count(*)
To mi seřadí ID_Navstevnik, od nejméně po nejvíce objednávek. Teď k tomu nějak potřebuji přidat ještě jméno, příjmení a první objednavku, kterou vytvořili, pokud jich mají více, ale s tím potřebuji nějak poradit. Nevím, čeho se chytit.
Select n.Jmeno, n.Prijmeni,o.ID_Navstevnik, Count(*)
From Objednavka o join navstevnik n on o.ID_Objednavka = n.ID_Navstevnik
Group by n.Jmeno, n.Prijmeni, o.ID_Navstevnik
Select n.Jmeno, n.Prijmeni,o.ID_Navstevnik, Count(*) as "PočetObjednavek"
From Objednavka o join Navstevnik n on n.id_navstevnik=o.id_navstevnik
Group by n.Jmeno, n.Prijmeni,o.ID_Navstevnik
Order by Count(*)
Takto mi to zobrazí jméno a sečte mi to objednavky každého. Potřebuji jen, aby to zobrazovalo od nejvíce objednávek, tedy obráceně.
Order by 4 desc
Díky moc, teď to funguje.
Nyní mi to zobrazí Jméno, Příjmení, ID, PočetObjednávek. Od toho, kdo jich má nejvíce.
Potřeboval bych k tomu nějak připsat ještě terminprijezdu. Tedy Termín prvního uskutečněného pobytu.
tedy joinout k tomu tabulku doklad a vytáhnout z toho skutecnyTerminPrijezdu
Jak chceš napsat termín příjezdu v případě, že má 2 objednávky dopředu?
Jinak můžeš samozřejmě použít funkci MAX() a napsat termín nejvyšší objednávky nebo MIN() a termín nejbližší objednávky