Requête SQL pour obtenir des lignes non conformes à la règle donnée
J'ai une liste de produits dans ma base de données.
ID PRODUIT | UNITÉS |
---|---|
PROD1 | une |
PROD2 | 2 |
PROD3 | 3 |
PROD4 | une |
PROD5 | une |
Solution du problème
Nous pouvons utiliser MAX et GROUP by. Parce que T est après F dans l'alphabet si l'une des valeurs est True, alors MAX pour ce productID est True. Nous utilisons ensuite HAVING pour obtenir les valeurs où MAX n'est pas True.
Il s'agit donc des produits qui n'ont pas d'unité de mesure marquée True, que la valeur soit False, vide ou nulle.
SELECT
productid,
MAX(isbaseunit)
FROM
UNITOFMEASUREID
GROUP BY
productid
HAVING
MAX(isbaseunit) <> 'True';
Commentaires
Enregistrer un commentaire