2017-09-06 1 views
0

Ich habe Gruppen von Daten (mit einem Parameternamen zu gruppieren) und müssen alle eindeutigen Werte ziehen. Die Datenbanktabelle hat zwei Spalten: ParameterName und ParameterValue. Ich bin auf der Suche nach einem Weg,Ziehen von eindeutigen Datensätzen in SQL Server 2008 R2 mit VB.NET

Zum Beispiel zu generieren:

  • Alter: 27, 36, 42 (3 Datensätze)
  • Farbe: Rot, Weiß Blau, Lila (4 Einträge)
  • Blume: Rose, Orchidee, Lily (3 Einträge)
  • Objekt: Schuhe, Handschuhe (2 Datensätze)
  • Geschlecht: männlich, weiblich (2 Datensätze)

Gewünschtes Ergebnis:

  • 27, Rot, Rose, Schuhe, Männlich
  • 36, Rot, Rose, Schuhe, Männlich
  • 42, Rot, Rose, Schuhe, Männlich
  • 27, Weiß , Rose, Schuhe, Männlich
  • 36, Weiß, Rose, Schuhe, Männlich
  • 42, Weiß, Rose, Schuhe, Männlich

..... und so weiter. Jede Hilfe wäre willkommen. Ich fühle mich wie das sollte einfach sein, aber nichts hat mich noch ... nicht einmal die Struktur

+0

Nein nahe treten, aber wenn Sie sich so fühlen sollte versuchen einfach sein, fügen Sie es zu tun, und wenn Sie stecken geblieben oder ein Problem, Sie können es hier posten, 'Stackoverflow' ist keine Plattform, um Code wegzugeben. –

+0

Ich habe; seit 3 ​​Tagen. Und glaub mir, ich würde hier nicht posten, wenn ich nicht wirklich feststecke. Ich bin der einzige Programmierer hier und obwohl das Verwenden eines dieser Foren helfen würde, Ideen herumzuschleudern .... nur für Logik ... nicht einmal Code. Vielleicht habe ich das falsche Forum. Ich weiß es nicht. – Lynne

+0

Ahh, das berüchtigte [EAV] (https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model) Antimuster ... Es ist so verlockend zu verwenden, da es so einfach scheint auf den ersten Blick, aber dann, wenn Sie es abfragen können Sie sich verrückt machen. –

Antwort

0
SELECT [age].ParameterValue as [age] 
    , [color].ParameterValue as [color] 
    , [flower].ParameterValue as [flower] 
    , [object].ParameterValue as [object] 
    , [sex].ParameterValue as [sex] 

FROM (SELECT * FROM [tblParameters] where ParameterName = '[age]') [age] 
    CROSS JOIN (SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[color]') [color] 
    CROSS JOIN (SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[flower]') [flower] 
    CROSS JOIN (SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[object]') [object] 
    CROSS JOIN (SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[sex]') [sex] 
Verwandte Themen