.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ comunicazione digitale (http://www.dsy.it/forum/forumdisplay.php?forumid=108)
-- trigger Prog non frequentante (http://www.dsy.it/forum/showthread.php?threadid=38287)


Posted by strad84 on 27-04-2009 14:53:

trigger Prog non frequentante

Richiedeva di fare un controllo che un allenatore non può fare + di 3 corsi al giorno.

Questa è solo la funzione...che poi richiamo con il trigger..ma nn va..



PHP:

CREATE FUNCTION trecorsi() RETURNS trigger AS $trecorsi$
    BEGIN
       
   
      if ( select count(*)
           from corso,orariocorso
           where corso.codice = NEW.codcorso and giornosett = EXTRACT(ISODOW FROM current_date)
           group by idallenatore
         ) > 3

        then  raise exception 'NON PUOI FARE PIU DI 3 CORSI AL GIORNO';

       end if;

          
         RETURN NEW;
    END;



il problema è che se ho un solo allenatore funziona, ma se ne ho + allenatori no.

per esempio con 2 allenatori


(questi me li fa inserire)

allenatore 1
allenatore 2
allenatore 1
allenatore 2


(questi no...anche se andrebbero inseriti xche verificherebbe la condizione)

allenatore 1
allenatore 2


sono i prossimi 2 che non mi deve far inserire


Spero di essere stato chiaro. grazie!!!


Posted by strad84 on 27-04-2009 16:23:

niente ve?


Posted by frenklin on 28-04-2009 11:32:

un preparatore non può dedicare più di 3 ORE al giorno ai corsi, non c è scritto che non può fare piu di 3 corsi..ocio stai sbagliando.
Metti che un corso dura 2 ore, un altro ancora ne dura sempre 2. Nel tuo caso un preparatore nello stesso giorno può fare tutti e due i corsi, per un totale di 4 ore. Non è corretto.
Io ho l orario di entrata al corso e l orario di uscita. Faccio la differenza di questi 2 valori per quel preparatore in quel giorno e vedo se la differenza è maggiore di 03:00:00. A me funziona


Posted by strad84 on 28-04-2009 12:44:

ah ok....hai ragione..perche nel nostro caso avevamo provato che ogni corso durava un ora. allora provo cosi
ciao e grazie!


All times are GMT. The time now is 11:29.
Show all 4 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.