0
votes

Sélectionnez des lignes dans lesquelles une colonne dispose de valeurs en double en fonction d'une autre colonne contenant des chaînes spécifiques

J'ai une table dans laquelle la colonne Numéro de client contient des valeurs dupliquer et je souhaite sélectionner toutes les lignes dans lesquelles il existe des entrées en double pour le numéro de client, mais seulement sélectionner ces lignes où la colonne Type WO ne contient que ces valeurs spécifiques ('IMU' , 'Electric') Donc, dans l'image de la table ci-jointe à cette question: je ne devrais obtenir que des lignes pour les identifiants 1 et 2.

Je ne veux pas que ces doublons comptent là où la paire de lignes en double contiennent également du gaz, mais que seuls les lignes en double qui ne contiennent que exclusivement uniquement des valeurs IMU et électriques dans la colonne Type WO

Votre aide est très appréciée.

 table client


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser groupe par code> et avoir code>: xxx pré>

Remarque: cela n'assume aucun doublure. Pour gérer cela, vous pouvez utiliser: p>

having count(distinct woType) = 2   -- number of elements in IN list


0 commentaires

0
votes
SELECT * 
FROM tbl t1
WHERE EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype = 'IMU'
) AND EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype = 'Electric'
) AND NOT EXISTS 
(
    SELECT * FROM tbl t2 
    WHERE t2.customernumber = t1.customernumber 
        AND t2.wotype NOT IN ('IMU', 'Electric')
)
Here's a fiddle.

1 commentaires

Merci beaucoup, cela fonctionne exactement comme je le voulais.



0
votes

Essayez ceci:

Sélectionnez * à partir de table1 Main Jointure interne ( Sélectionnez Customer_Number De table1 Groupe par Customer_Number Ayant compté (Customer_Number)> 1) Sub on Main.Customer_number = Sub.customer_number Où main.wo_type dans ('imu', 'électrique')

Cette requête retournera l'ensemble dupliqué ou des lignes dans la table.


1 commentaires

Merci cela fonctionne, mais cela compte également ces lignes là où il y a un 3ème wotype que je ne veux pas. Mais merci pour l'aide si