Ciao a tutti,
ho dei problemi con la funzione exists in query di accodamento e spero che qualcuno possa aiutarmi.
Ho una query di accodamento che mi fornisce delle date di scadenza di alcune attività (manutenzioni impianti) cicliche da eseguire e che attraverso il DATEADD mi trasforma la data sempre in fine mese.
La funzione toglie il numero di giorni della data meno 1 in modo da ottenere sempre il primo giorno del mese, poi aggiunge 1 al mese e infine toglie ancora 1 giorno in modo da ottenere sempre la fine del mese. La data effettiva su cui lavora il DATEADD è la somma di una data (datacontratto) e di una frequenza di ripetizione dell'attività espressa in giorni (frequenzaGG). Ecco il codice:
DateAdd('d';-1;DateAdd('m';1;DateAdd('d';1-Day([datacontratto]+[frequenzaGG]);[datacontratto]+[frequenzaGG])))
Dal momento che la query non deve creare doppioni di scadenze ho pensato (rovistando su internet) di utilizzare la condizione 'Exists' per evitarlo, ma qui cominciano i problemi. Gli argomenti della funzione exists sono l'ID dell'attività manutentiva e la data di scadenza: in pratica se la tabella contiene un'attività con ID dell'attività manutentivo (IDImpiantoManutenzione) e data di scadenza (ScadenzaOperazione) uguali a quelle calcolate dalla query, non le inserisce in tabella. Ecco il codice:
Exists (SELECT null FROM RegOperazioni where RegOperazioni.IDImpMan=ImpiantiManutenzioni.IDImpiantoManutenzione and RegOperazioni.ScadenzaOperazione=(DateAdd('d';-1;DateAdd('m';1;DateAdd('d';1-Day([datacontratto]+[frequenzaGG]);[datacontratto]+[frequenzaGG]))))=False)
Continua a darmi "Syntax error" e non riesco a capire perchè!
Se invece di mettere tutta la funzione con il dateadd metto solo la data ([datacontratto]+[frequenzaGG]) funziona perfettamente e mi evita la creazione di doppioni.
Exists (SELECT null FROM RegOperazioni where RegOperazioni.IDImpMan=ImpiantiManutenzioni.IDImpiantoManutenzione and RegOperazioni.ScadenzaOperazione=([DataContratto]+[FrequenzaGG]))
Qualcuno sa darmi una spiegazione?
In alternativa, avete altre idee per evitare la creazione di doppioni dalla query di accodamento?
Grazie a tutti!