Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [plsql]funkcja w funkcji czy moze tak byc ?, totalne przedszkole :)help :)
woytazsierrafun
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.04.2007

Ostrzeżenie: (0%)
-----


mam takie zadanko do zrobienia:
napisac program ktory wypisze z bazy dane o towarze którego najwiecej sprzedano w ciagu roku..
niestety zeby to wypisal wymagane jest uzycie 2 funkcji: max oraz sum. Cursor powinien wykonac jakby maxa z sumy..i teraz moje pytanie dotyczy składni jak powinno byc to napisane w cursorze czy taki zapis jest okey ? : max(sum(ilosc)) ? ..bylbym mega wdzieczny za jakies sugestie i podpowiedzi bo jestem troszke zielony smile.gif

oto ten programik który sklecilem :


set serverotput on;
create or replace function ilosc(z-data_start zlecenie.data_start%type,
z_data_stop zlecenie.data_stop%type) is

cursor c_il (z_in_data_start zlecenie.data_start%type,
z_in_data_stop zlecenie.data_stop%type)is
Select max(sum(ilosc)) as ile,nazwa,typ
from towar,zlecenie
where towar.id=zlecenie.id_towar
and zlecenie.data_start>TO_DATE(2006-01-01,'yyyy','mm','dd')
and zlecenie.data_stop<TO_DATE(2006-12-31,'yyyy','mm','dd')
r_il c_il%RowType;

Begin
open c_il(z_data_start,z_data_stop)
loop
fetch c_il into r_il;
exit when c_il%NOT FOUND;
dbms_output.put_line('najwięcej sprzedano:'||r_il.nazwa||'typ:'||r_il.typ||
'sprzedano:'||r_il.ile||'szt');
end loop
close c_il;
end;


z góry wielki dzieki za jakakolwiek pomoc smile.gif
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


prosze uzupełnic bb code. poza tym to co napisales to pascal(czy coś o podobnej składni raczej) a nie php
Go to the top of the page
+Quote Post
woytazsierrafun
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.04.2007

Ostrzeżenie: (0%)
-----


nie to plsql a dokladnie to oracle.. mam nadzieje ze dobrze trafilem bo ten dzial chyba dotyczyl sql-a ? smile.gif

Ten post edytował woytazsierrafun 2.04.2007, 19:58:59
Go to the top of the page
+Quote Post
redman2
post
Post #4





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 13.10.2004

Ostrzeżenie: (0%)
-----


Musisz uzyc grupowania jezeli uzywasz ktorejs z funkcji grupowych

  1. SELECT nazwa, typ, sum(ilosc) AS suma
  2. FROM temp GROUP BY typ,nazwa
  3. ORDER BY suma DESC LIMIT 0, 1


Poza tym, co razi w tym kodzie, to brak sekcji DECLARE i tego, ze faktycznie nie zwracasz wartosci, tylko ja wyswietlasz, wiec procedura w zupelnosci wystarczy.

Ten post edytował redman2 19.04.2007, 13:26:12
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:14