2009-08-27 6 views
1

J'ai deux tableaux de valeurs comme X, Y, Z et 1,2 Il y a un tableau A avec deux colonnes. Je veux valider que dans le tableau A enregistrements avec toute la combinaison existe indépendamment des doublons. par exemple.vérifier combinaison des enregistrements dans le tableau

X 1 

Y 1 

Z 1 

X 2 

Y 2 

Z 2 

Merci d'avance!

Répondre

1

Cela fonctionne avec un ensemble de données et ne présumez pas que vous connaissez les valeurs qui seront dans le tableau.

La requête renvoie toutes les lignes qui manquent. Vous pouvez facilement transformer ceci en une instruction d'insertion pour remplir votre table.

SELECT * 
FROM 
(select * from (SELECT DISTINCT col1 FROM table1) CROSS JOIN (SELECT DISTINCT col2 FROM table1)) AS t1 
LEFT OUTER JOIN table1 ON t1.col1 = table1.col1 AND t1.col2 = table1.col2 
WHERE 
table1.col1 is null 
+0

Je viens de voir que vous avez marqué votre question « oracle ». Cette requête est conçue pour SQL Server. Peu importe, le principe est le même. –

+0

Merci pour votre réponse. J'ai essayé la requête et fonctionne très bien comme décrit. En fait ces valeurs de tableau viennent de l'extérieur, donc j'ai besoin de les passer à la requête rathor que de comparer la combinaison basée sur la table elle-même. De plus, ces combinaisons sont dynamiques et se développeront dans le futur. – Lico

+0

encore une chose que j'aime mentionner que cette table peut ne pas avoir quelques lignes à comparer. par exemple. rangée avec la valeur X peut ne pas être là et encore je veux comparer celui-ci aussi. il peut donc manquer la comparaison de X avec l'ensemble des lignes – Lico

1

Ce qui suit devrait fonctionner quelles que soient les valeurs suivantes:

select col1, col2 
from (select distinct col1 from combtest), (select distinct col2 from combtest) 
minus 
select col1, col2 
from combtest 

D'abord, il obtient les combinaisons possibles alors les combinaisons retranche réelles.

+0

Très agréable. J'aimerais que T-SQL ait un opérateur moins. – Hafthor

Questions connexes