RaouL_BennetH
02-10-2009, 14:59
Ciao a tutti :)
Ho una tabella dove prima di inserire dei dati, dovrei controllarne la validità.
Per semplificare, utilizzo questa tabella:
"tableTest"
ID
employeeId
dataEvento
totale
Il tipo di controllo che dovrei fare, si basa su due elementi:
dataEvento e totale.
Partendo da 'totale':
devo controllare, prima di inserirne il valore, che la somma dei totali aventi la stessa dataEvento e lo stesso employeeId, non superi un valore contenuto in un'altra tabella che, sempre per semplificare:
"tableEmployee"
employeeId
maxValue
In pratica, se maxValue = 100, nella tabella tableTest, per qualsiasi evento che si verifichi nello stesso giorno (dataEvento), la somma di questi eventi(totale) non deve superare i 100 per lo stessa persona (employeeId).
In linea di principio, in pseudo codice, dovrei fare qualcosa del genere:
CREATE TRIGGER testTrx BEFORE INSERT ON tableTest
FOR EACH ROW
SELECT maxValue As t FROM tableEmployee WHERE employeeId = NEW.employeeId
IF SUM(totale) <= t WHERE dataEvento isTheSame
INSERISCI
ecco... se la logica è giusta mi servirebbe una mano a tradurlo da pseudo codice in qualcosa di funzionante :stordita:
Grazie mille :)
RaouL.
Ho una tabella dove prima di inserire dei dati, dovrei controllarne la validità.
Per semplificare, utilizzo questa tabella:
"tableTest"
ID
employeeId
dataEvento
totale
Il tipo di controllo che dovrei fare, si basa su due elementi:
dataEvento e totale.
Partendo da 'totale':
devo controllare, prima di inserirne il valore, che la somma dei totali aventi la stessa dataEvento e lo stesso employeeId, non superi un valore contenuto in un'altra tabella che, sempre per semplificare:
"tableEmployee"
employeeId
maxValue
In pratica, se maxValue = 100, nella tabella tableTest, per qualsiasi evento che si verifichi nello stesso giorno (dataEvento), la somma di questi eventi(totale) non deve superare i 100 per lo stessa persona (employeeId).
In linea di principio, in pseudo codice, dovrei fare qualcosa del genere:
CREATE TRIGGER testTrx BEFORE INSERT ON tableTest
FOR EACH ROW
SELECT maxValue As t FROM tableEmployee WHERE employeeId = NEW.employeeId
IF SUM(totale) <= t WHERE dataEvento isTheSame
INSERISCI
ecco... se la logica è giusta mi servirebbe una mano a tradurlo da pseudo codice in qualcosa di funzionante :stordita:
Grazie mille :)
RaouL.