Pár SQL dotazů - pomozte prosím
Zdravím,
mám tento model databáze:
Zadaní příkladů je:
Příklad č. 3
Vypište si data z tabulky období. Na základě struktury těchto údajů vytvořte dotaz, který zobrazí sumy zaplacených záloh dle jednotlivých období odečtů.
Nato jsem vymyslel toto:
select obdobi_n, sum(castka) from klient,obdobi,meridlo,odecty,zalohy
where klient.id_klienta = zalohy.id_klienta and odecty.ID_OBD = obdobi.ID_OBD and klient.id_klienta = meridlo.id_klienta
and meridlo.ozn_meridla = odecty.ozn_meridla
group by obdobi_n
Vrací toto:
Což si myslím, že je blbost vzhledem k datům, která jsou v tabulce záloh (viz. níže)
S dalšími dvěmi si vůbec nevím rady...
Příklad č. 4,.
Vypiš zákazníky, kteří měli odběr energie za období 01/2004 – 01/2005 vetší než průměrný.
Příklad č. 5
Vyúčtuj všechny klienty za období plateb 01/2004 – 01/2005. Zjisti jejich nedoplatky nebo naopak přeplatky
Ještě přikladám jak vypadá tabulka obdobi a tabulka záloh:
Databáze je Oracle. Pomůže někdo?
Díky!
MaSo
Nikdo neví?
4:
select id_klienta, castka from klient join meridlo using(id_klienta) join odecty using(ozn_meridla) join obdobi using (id_obdobi)
where
id_obdobi=1
having castka>=avg(castka)
sorry, musim scrollovat, tak jsem to trochu pokonil (misto castky rozdil odberu), ale myslim, zes mel problem kvuli having ne?
jinak kdybys sem hodil vytvorenou a naplnenou db slo by to(aspon me lip) - nebo mi dal pristup do db.
Jj! Použil bych některého SQL buildera a měl to coby dup .
Příklad 4, bez záruky neboť nemám možnost to zkusit (tabulky se mi nechce dělat):
Ufff! Nejsem si bez spuštění jist, jestli druhá část podmínky WHERE hlavního Selectu (od AND dále) nemá být v HAVING).
Děkuji za odpovědi, ale obojí mi hází chyby. Můžete se zkusit připojit, ale mam jenom Oracle Express, tak nevím jestli to půjde.
Server běží na 217.195.171.43
User: MASO
Pass: hnis
Ale možná mám na to blbého klienta, i když tvrdějí, že oracla to zvládne
Zkus to pls ještě jednou...upravil jsem nastavení...
nebo vlastně rovnou přes web: http://217.195.171.43:8080/apex/f?p=4550:11:1389066 058538665::NO:::
Díky moc!
Neni zac. Priklad c. 5 je podobny (musis udelat par vnorenych dotazu). Jednotlivymi dotazy potrebujes zjistit
1) ID klienta a kolik zaplatil v roce 2005
2) ID klienta (plus dalsi udaje ktere chces videt), cenu_kwh klienta [nasobit] kolik odebral v zadanem obdobi
3) sloucenim obou dostazu ziskas udaje klienta a udaje o preplatcich/nedoplatcich (to bude ta nasobena cena [minus]kolik zaplatil v roce 2005)
Princip je stejny, jako v predchozim pripade, jenom se pouziji jine tabulky. Kdyz to nezvladnes, tak se na to pak jeste podivam.
Btw ta struktura je tvoje nebo zadana (skolou?)? Je to misty malinko prasarna - typicky ta obdobi :)
Ok, zkusím to sám. Struktura je zadaná školou...
Tak ve skole vyridid, ze jenom prase narve do jednoho textovyho pole dve DATE polozky :)
Ok, ale až po zkoušce.