2010-03-31 12 views
0

J'ai une table de nombreuses valeurs où une colonne a le numéro WO, et une autre colonne a l'ID de la ressource. Je dois être capable de trouver tous les numéros WO qui n'ont pas de valeur de ressource "RW".Comment trouver les valeurs alpha manquantes dans des ensembles de données dans la même table dans SQL

Voici un exemple de l'information typique. Je dois être capable de savoir que l'ordre de travail 5678 n'a pas d'identifiant de ressource "RW".

WO Number - ID de ressources
1234 - EN
1234 - NOUS
1234 - AS
1234 - RW
5678 - PR
5678 - NOUS
5678 - EN
5678 - AS

Répondre

1
SELECT DISTINCT M1.WONumber 
FROM Mytable M1 
WHERE 
    NOT EXISTS (SELECT 1/0 --or NULL, 1, *, 'bob'. All the same 
        FROM Mytable M2 
        WHERE M2.ResourceID = 'RW' AND M1.WONumber = M2.WONumber) 
+0

Si M2.ResourceID est nul cela affecterait-il les résultats? –

+0

@Gary B2312321321: oui. Nous cherchons seulement * non * M2.ResourceID = 'RW'. Donc si c'est NULL ou 'WE' il n'y a pas de lignes pour ce WONumber dans la corrélation NOT EXISTS -> WOnumber n'a pas de 'RW' ResourceID – gbn

+0

Merci pour l'aide, ça a bien fonctionné! – Jeff

0

SI vous connaissez l'engourdissement er des ressources possibles et chaque numéro WO peut avoir au plus 1 de chaque ressource possible, il suffit de rechercher les numéros WO qui n'ont pas toutes les ressources possibles:

SELECT WO_Number 
FROM <table> 
GROUP BY WO_Number 
HAVING COUNT(*) <> (number of resources) 
1

Soustraire les numéros adjudants « RW » de l'ensemble de tous les numéros WO:

SELECT DISTINCT wo_number FROM mytable 
MINUS 
SELECT DISTINCT wo_number FROM mytable WHERE resource_id = 'RW' 

Devrait fonctionner. Cependant, je ne suis pas un utilisateur Power SQL, donc votre kilométrage peut varier.

+0

Tous les systèmes de bases de données ne prennent pas en charge le mot clé MINUS, par exemple SQL Server ne fonctionne pas –

+1

SAUF dans SQL Server 2005+ http://msdn.microsoft.com/en-us/library/ms188055.aspx – gbn

+0

Je ne peux pas essayez ceci mais j'aime votre pensée ... – gbn

Questions connexes