Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [plsql]funkcja w funkcji czy moze tak byc ?
Forum PHP.pl > Forum > Bazy danych > Oracle
woytazsierrafun
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
ActivePlayer
prosze uzupełnic bb code. poza tym to co napisales to pascal(czy coś o podobnej składni raczej) a nie php
woytazsierrafun
nie to plsql a dokladnie to oracle.. mam nadzieje ze dobrze trafilem bo ten dzial chyba dotyczyl sql-a ? smile.gif
redman2
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.