verwendetes Datenbanksystem: MS SQL 2005
Hallo,
wie kann ich alle object_id(s) selektieren, die bestimmte variablen und werte haben.
Tab1:
object_id variable_id value
1 A 10
1 B 11
1 C 12
1 F 77
2 A 10
2 B 11
2 W 333
3 A 12
3 B 22
3 C 25
4 B 55
4 F 56
4 D 124
6 E 44
Bsp:
select object_id from Tab1 where (variable_id = 'A' and value = '10') and (variable_id = 'B' and value = '11') and (variable_id = 'C' and value = '12')
Ich habe es mit Klammern visuell gezeigt was ich meine, ich möchte bestimmte variable_id mit bestimmten value verknüpfen. Es kann gut sein, dass ich 100 solche variablen so verknüpfen muss.
Grüße
Moin radeksm,
schreib dir doch einfach eine StoredProcedure der Du den Namen und den Wert übergibst und vereinige dann die Ergebnisse mehrer Aufrufe mit UNION.
Grüße
bigeddie
Man muß nichts wissen,
man muß nur wissen wer es wissen könnte
oder wo es steht😉
Moin radeksm,
schreib dir doch einfach eine StoredProcedure der Du den Namen und den Wert übergibst und vereinige dann die Ergebnisse mehrer Aufrufe mit UNION.
Grüße
bigeddie
Hallo bigeddie,
danke für Deine Hilfe aber ich kann nicht direkt via Transact SQL oä auf DB gehen. Die DB ist eine Fremd Komponente, da kann ich "nur" select, update und insert abfeuern. Ich kann es höchstens programmatisch machen aber bei 100000 Einträgen wird es schwierig sein.
Ist es mit einer 'Select' Abfrage nicht machbar?
Grüße
radeksm
Hallo,
ich bin mir nicht sicher, ob ich dein Problem richtig verstanden habe.
Du hast ein DB, auf welche du nur mittels SQL-Kommandos aus einem Programm heraus Zugriff hast?
Dann wird dir kaum etwas anderes üblig bleiben als
select object_id from Tab1
where (variable_id = 'A' and value = '10')
OR (variable_id = 'B' and value = '11')
OR (variable_id = 'C' and value = '12')
OR (variable_id = '...' and value = '...') ...
Ein Alternative wäre vielleicht auch ein
select * from Tab1
und dann mittels LINQ einschränken.
Oder: kannst du von einer anderen Datenbank darauf zugreifen, z.B. mit einem View?
Dann könntest du in der 2ten Datenbank eine tabelle füllen mit den gesuchten Kombinationen von ID/value und diese auf das View, welches aus der Fremd-DB liest joinen.
roses are #FF0000 violets are #0000FF
all my base are belong to you
Hallo Zusammen,
die Lösung ist INTERSECT:
select object_id from Tab1 where variable_id = 'a' and value='10'
INTERSECT
select object_id from Tab1 where variable_id = 'b' and value='11'
INTERSECT
select object_id from Tab1 where variable_id = 'c' and value='12'
Danke für Eure Hilfe
Das hättest du mit SELECT DISTINCT object_id auch einfacher und performanter haben können.
Das hättest du mit GROUP BY object_id auch einfacher und performanter haben können.
so stimmt's 😉
roses are #FF0000 violets are #0000FF
all my base are belong to you