2014-09-11 5 views
0

Je suis nouveau ici. J'ai fait beaucoup de recherches et j'ai reçu beaucoup de questions dans les publications existantes. Je pense que j'arrive à un point de complication réel maintenant, parce que je ne trouve plus les réponses plus faciles. Je vais expliquer ma situation aussi nue/simplifiée que possible.Comment interroger deux champs (différents) dans un seul champ

J'ai un maître Code article Tableau:

item 
E01 
E02 
E03 
E04 

Et une table de code sous d'élément lié au code maître d'objet (ce capture alternances/tailles) Il est relation un à plusieurs avec le maître Numéro d'article:

item subItem 
E02  E02_S 
E02  E02_M 
E02  E02_L 
E03  E03A 
E03  E03B 
E03  E03C 
E04  E04A_S 
E04  E04A_M 
E04  E04B_L 
E04  E04B_XL 

Notez que E01 n'a pas de sous-élément car il ne contient aucune variation.

J'effectué une requête avec jointure entre les deux tables pour inclure tous les élément et les sous-éléments:

SELECT master.item, [Size List].subItem 
FROM master Left JOIN [Size List] ON master.[item] = [Size List].[item]; 

item subItem 
E01 
E02  E02_S 
E02  E02_M 
E02  E02_L 
E03  E03A 
E03  E03B 
E03  E03C 
E04  E04A_S 
E04  E04A_M 
E04  E04B_L 
E04  E04B_XL 

La liste est comme prévu, chaque sous-élément et l'élément maître occupant une ligne. Notez que E02, E03 et E04 plain n'occupe pas une ligne quand ses sous-éléments sont disponibles, et E01 occupe une rangée parce qu'aucune variation n'existe.

Comment est-ce que je mettrais à jour cette requête pour fusionner le maître et le sub à un champ de sorte qu'ils occuperaient toujours chaque rangée comme le ferait la jointure? En général, j'essaie de créer une liste d'éléments uniques, où les sous-éléments agissent comme uniques en remplaçant leur niveau maître associé.

* combinedItemList

E01 
E02_S 
E02_M 
E02_L 
E03A 
E03B 
E03C 
E04A_S 
E04A_M 
E04B_L 
E04B_XL 

Toute aide ou aperçu serait très appréciée. Je vous remercie!

+0

Bienvenue dans Stack Overflow! Je pense que vous avez fait du bon travail en décrivant votre question, mais vous voudrez peut-être donner une lecture à la section [Formatage] (http://stackoverflow.com/help/formatting) du Centre d'aide pour pouvoir formater vos extraits de code . – skrrgwasme

Répondre

0

La première instruction obtient tous les éléments qui n'ont pas de sous-éléments.

La deuxième instruction obtient tous les sous-éléments où la valeur de l'élément existe et les combine.

select DISTINCT master.item 
from master 
left join [Size List] 
master.[item] = [Size List].[item] 
where [Size List].subItem is null 
UNION 
SELECT DISTINCT [Size List].subitem 
FROM [Size List] 
0

Merci! J'ai édité le code que vous avez fourni à ce qui suit, mais je sais ce que vous obtenez à! Je n'avais aucune idée qu'un syndicat pouvait simplement fusionner deux domaines différents aussi facilement.

select DISTINCT master.item 
from master 
left join [Size List] 
On master.[item] = [Size List].[item] 
Where [Size List].subItem is null 
Union 
SELECT DISTINCT [Size List].subitem 
FROM [Size List] 
Questions connexes