Ho una query difficilotta che non riesco a risolvere
Ho una lista di utenti che filtro tramite una lista di categorie (una combo multipla)
Ho due combo per mostrare la lista di utenti presenti nelle categorie.
La prima mi mostra i record di una tabella filtrati tramite una condizione (quelli presenti nelle categorie selezionate nel filtro).
La seconda mi mostra i record opposti; cioè tutti i record restanti della tabella che sono stati esclusi.
La query per la prima combo è:
Ora il problema è con la 'IN'.codice:SELECT DISTINCT E.IdEmail, E.Nominative, E.Email FROM TbEmNL E LEFT JOIN TbEm_Cat_NL EC ON EC.IdEmail= E.IdEmail WHERE Abilitato = 1 AND (EC.IdCatNL IS NULL OR EC.IdCatNL IN (2,4,5) ) ORDER BY E.Nominative DESC, E.Email DESC, E.IdEmail
Infatti per fare la cosa opposta non basta una 'NOT IN', visto che uno stesso utente può avere più categorie, e quindi può riapparire.
Se per esempio ho un utente nella categoria 2 e nella 3 mi verrà mostrato in entrambe le combo.
Come posso evitare che questo accada?
Come devo scrivere la WHERE per non mostrare i record riguardanti gli IdEmail (gli utenti) che hanno almeno una categoria in quelle elencate nella 'IN'?
Credo sia abbastanza semplice ma non mi viene l'intuizione su come fare![]()
Mi date un aiuto?
Grazie mille,
Pictor![]()


Rispondi quotando
