Hallo,
ich bin gerade am Hirnen, wie ich folgendes bewerkstelligen kann:
Gegeben ist eine Menge von (geordneten) Elementen e1,e2,...,en und eine (kommutative) Verknüpfung v(ei,ej) =v(ej,ei) = {0,1}. Eine SQL-Query liefert mir nun alle Paare, für die v=1 gilt.
Also z.B:
SELECT e1,e2 FROM v
e1 e2
1 2
2 1
2 4
4 2
Ich hätte jetzt aber gerne eine Query außenrum gebaut, die n^2-mal 0 bzw. 1 liefert, so dass man, wenn man das Ergebnis in eine nxn-Matrix (zeilen- oder spaltenweise,egal) umwandelt, man aus der Matrix sofort lesen kann, ob für die Verknüpfung ei mit ej (bzw. umgekehrt, was ja egal ist) den Wert 0 oder 1 liefert.
also 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0,
als Matrix
0 1 0 0
1 0 0 1
0 0 0 0
0 1 0 0
Es dünkt mir irgendwie, dass man das ganze mit einem OUTER JOIN erreichen kann, um das Ergebnis mit Nullen füllen zu können.
Leider ist es aus Komplexitätsgründen nicht möglich, eine zweite Query zu erstellen, die die Pärchen mit v=0 liefert.
Nach Möglichkeit sollte die gesuchte Query auch kein IF enthalten.
Wer kann helfen?
Danke und Gruß,
mssqler
ich bin gerade am Hirnen, wie ich folgendes bewerkstelligen kann:
Gegeben ist eine Menge von (geordneten) Elementen e1,e2,...,en und eine (kommutative) Verknüpfung v(ei,ej) =v(ej,ei) = {0,1}. Eine SQL-Query liefert mir nun alle Paare, für die v=1 gilt.
Also z.B:
SELECT e1,e2 FROM v
e1 e2
1 2
2 1
2 4
4 2
Ich hätte jetzt aber gerne eine Query außenrum gebaut, die n^2-mal 0 bzw. 1 liefert, so dass man, wenn man das Ergebnis in eine nxn-Matrix (zeilen- oder spaltenweise,egal) umwandelt, man aus der Matrix sofort lesen kann, ob für die Verknüpfung ei mit ej (bzw. umgekehrt, was ja egal ist) den Wert 0 oder 1 liefert.
also 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0,
als Matrix
0 1 0 0
1 0 0 1
0 0 0 0
0 1 0 0
Es dünkt mir irgendwie, dass man das ganze mit einem OUTER JOIN erreichen kann, um das Ergebnis mit Nullen füllen zu können.
Leider ist es aus Komplexitätsgründen nicht möglich, eine zweite Query zu erstellen, die die Pärchen mit v=0 liefert.
Nach Möglichkeit sollte die gesuchte Query auch kein IF enthalten.
Wer kann helfen?
Danke und Gruß,
mssqler
Comment