Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pár SQL dotazů - pomozte prosím

Zdravím,
mám tento model databáze:
[http://img220.imageshack.us/img220/144/clipboard01a l4.png]

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:
[http://img80.imageshack.us/img80/1115/vysledekre2.p ng]
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:
[http://img223.imageshack.us/img223/3829/obdobiia6.p ng][http://img215.imageshack.us/img215/575/zalohyag0.pn g]

Databáze je Oracle. Pomůže někdo?
Díky!:beer:
MaSo

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Děkuji za odpovědi, ale obojí mi hází chyby. Můžete se zkusit připojit, ale mam jenom Oracle Express…
MaSo 29.04.2007 01:34
MaSo
Unable to complete network request to host "217.195.171.43". Failed to establish a connection. Nemoh… nový
Rce 29.04.2007 01:52
Rce
Zkus to pls ještě jednou...upravil jsem nastavení... nebo vlastně rovnou přes web: http://217.195.17… nový
MaSo 29.04.2007 02:01
MaSo
SELECT DOTAZ2.KLIENT, DOTAZ2.ODBER, DOTAZ1.PRUMER FROM (select KLIENT.NAZEV_KL as KLIENT, SUM(ODECTY… nový
Příklad 4 - dotaz 29.04.2007 04:02
Příklad 4 - dotaz
Díky moc! :beer: nový
MaSo 29.04.2007 10:58
MaSo
Neni zac. Priklad c. 5 je podobny (musis udelat par vnorenych dotazu). Jednotlivymi dotazy potrebuje… nový
wrtrcz 29.04.2007 11:17
wrtrcz
Ok, zkusím to sám. Struktura je zadaná školou...:-) nový
MaSo 29.04.2007 11:19
MaSo
Tak ve skole vyridid, ze jenom prase narve do jednoho textovyho pole dve DATE polozky :) nový
wrtrcz 29.04.2007 11:20
wrtrcz
Ok, ale až po zkoušce. :-) poslední
MaSo 29.04.2007 11:30
MaSo

Unable to complete network request to host "217.195.171.43".
Failed to establish a connection.
Nemohlo být vytvořeno žádné připojení, protože cílový počítač je aktivně odmítl.

Ale možná mám na to blbého klienta, i když tvrdějí, že oracla to zvládne :-(

SELECT DOTAZ2.KLIENT, DOTAZ2.ODBER, DOTAZ1.PRUMER
FROM
(select	 KLIENT.NAZEV_KL as KLIENT,
         SUM(ODECTY.KON_STAV-ODECTY.POC_STAV) as ODBER
   from	 ODECTY, MERIDLO, KLIENT
  where  MERIDLO.ID_KLIENTA =KLIENT.ID_KLIENTA 
    and	 MERIDLO.OZN_MERIDLA =ODECTY.OZN_MERIDLA
   and ODECTY.ID_OBD = 1
   group by KLIENT.NAZEV_KL) DOTAZ2,
(select	 avg(ODECTY.KON_STAV-ODECTY.POC_STAV) as PRUMER 
   from	 ODECTY  WHERE ID_OBD = 1) DOTAZ1
where DOTAZ2.ODBER > DOTAZ1.PRUMER

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 :)

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