mguhlke
Goto Top

SQL Match Problem

Hallo ich habe 2 Tabellen die ich miteinander verbinden muss

Abrechnung:

IDA
12100000abc
20100046def
20190005ghi
20100012abc
31290355abc
31290413abc
61100024abc
61100601abc
61100603abc
61100603abc
61100606abc
61100607abc
61100609abc
......

ConentIDSupplierZO:

ContentBereichSupplierID
1110000080000
1111000082101
11120000 !!!
1113000080121
1114000080124
1115000080124
11160000!!!
1120000082101
11210000!!!
1199000090000
12000000!!!
1210000080000
1211000082101
12120000!!!
1213000080121
1214000080124
1215000080124
......
5124233880018
5124236881406
....
Jetzt muss ich es irgendwie hinbekommen die IDs auf den Bereich zu Matchen jedoch kann ich nicht einfach nur die ersten 4 Stellen vergleichen, da es auch sonderfälle gibt. (siehe letzte beiden in Tabelle2)
Hat dazu irgendjemand eine Idee? Ich bin total am verzweifeln.
SELECT Abrechnung.ContentID, Abrechnung.Downloads, Abrechnung.Share, [Downloads]*[Share] AS MobiShare, GamesCatalogue.GameTitle, GamesCatalogue.Supplier1, GamesCatalogue.Supplier2, ConentIDSupplierZO.SupplierID
FROM ConentIDSupplierZO INNER JOIN ((Abfrage5 INNER JOIN Abrechnung ON Abfrage5.[UR-ID] = Abrechnung.[UR-ID]) LEFT JOIN GamesCatalogue ON Abrechnung.ContentID = GamesCatalogue.ContentID) ON  Abrechnung.ContentID //(HIER KOMME ICH NICHT WEITER)
WHERE (((Abrechnung.[UR-ID])=[Abfrage5].[UR-ID]));

PS: handelt sich um ACCESS 2007

Content-Key: 109352

Url: https://administrator.de/contentid/109352

Printed on: April 24, 2024 at 09:04 o'clock

Member: Logan000
Logan000 Feb 18, 2009 at 10:55:16 (UTC)
Goto Top
Moin Moin

Ich bin total am verzweifeln.
Ich auch. Ich schaue mir dein SQLstatement an und frage mich was ist Abfrage5?
Ausgerechnet heute ist meine Kristallkugel kaputt und der Wahrsager hat Urlaub.

Spaß beiseite. Wieso willst du nur die ersten 4 Stellen vergleichen?
Was soll mit den letzten beiden DS in Tabelle2 sein?
Beschreib mal etwas genauer was Du als Ergebniss der Abfrage erwartest.

Gruß L.
Member: AndreasHoster
AndreasHoster Feb 18, 2009 at 11:00:32 (UTC)
Goto Top
Ich verstehe das Problem nicht wirklich, ist aber auch nicht sinnvoll beschrieben.
Bei den 2 Beispieltabellen, was willst Du genau mit was verküpfen und was hast Du mit den 4 Stellen genau gemeint?
Member: mguhlke
mguhlke Feb 18, 2009 at 11:05:07 (UTC)
Goto Top
Abfrage5 liefert mir eigentlich nur die zubeachtenden UR-IDs und ist daher eigentlich erstmal egal

Ich will ja gerade nicht nur die ersten 4 Stellen vergleichen, da es ja auch vorkommen kann, dass ich alle 8 Stellen beachten muss

Die Ausgabe sollte dann folgende Form haben:

ID ASupplierID
12100000abc80000
12135487def80121
51242337hij80014
51242338hij80018
51242368ghf81406
Member: mguhlke
mguhlke Feb 18, 2009 at 11:09:15 (UTC)
Goto Top
Member: mguhlke
mguhlke Feb 18, 2009 at 11:10:01 (UTC)
Goto Top
Ich wollte damit eigenlich nur sagen, dass ich kein vergleich der ersten 4 stellen machen kann also
LEFT(Abrechnung.ID, 4) = LEFT(ConentIDSupplierZO.ContentBereich,4)
da es halt auch noch Bereiche an der 8ten Stelle gibt

Daher also eine Verknüpfung durch Abrechnung.ID und ConentIDSupplierZO.ContentBereich
Member: Logan000
Logan000 Feb 18, 2009 at 12:32:13 (UTC)
Goto Top
Moin
Ok das mit Abfrage 5 ist klar. Aber der Rest nicht.
Deswegen frag ich anderherum:
Was spricht gegen:
SELECT ....
FROM ConentIDSupplierZO INNER JOIN Abrechnung ON Abrechnung.ID = ConentIDSupplierZO.ContentBereich
?
Ich hab mir erlaubt abfrage5 einfach mal außenvor zu lassen.

Gruß L.
Member: mguhlke
mguhlke Feb 18, 2009 at 12:41:39 (UTC)
Goto Top
Das würde ja dann nur Matchen, wenn ID = ContentBereich ist

Bsp:

Funktioniert:
ContentBereich SupplierID ContentID
12100000 80000 12100000
31350000 80619 31350000

Funktioniert nicht:
ContentBereich SupplierID ContentID
12100000 80000 12100001
31350000 80619 31350001
Member: Logan000
Logan000 Feb 18, 2009 at 13:03:04 (UTC)
Goto Top
Moin

Das würde ja dann nur Matchen, wenn ID = ContentBereich ist
Natürlich, was ich auch erstmal "nomal" wäre.

Und jetzt verstehe ich auch den Punkt mit "nur die ersten 4 stellen" vergeleichen.
Aber wir ist weiterhin unklar warum das nicht ausreichen sollte, denn für diese beiden Beispiele würde es wohl funktionieren. Gib mal ein Bsp an für das es nicht funktionieren würde.

Sorry, wenn ich dauernd Nachfrage, aber du bist leider der einzige von uns beiden der die Inhalte der Tabellen sieht.

Gruß L.
Member: mguhlke
mguhlke Feb 18, 2009 at 13:08:30 (UTC)
Goto Top
ContentIDSupplierZO

ContentBereichSupplierID
5324000081406
5324233880018
5324236881406
5325000080023

Dieser Bereich würde jetzt Probleme verursachen wenn ich jetzt ContentID 53242339 z.b. nehmen würde

BTW Schonmal vielen Dank für deine bemühungen
Member: mguhlke
mguhlke Feb 18, 2009 at 13:46:15 (UTC)
Goto Top
Juhuu!!!

Habe Endlich eine Lösung gefunden ;)

Habe zum ContentBereich noch einen EndBereich hinzugefügt und dann mit >= Start und <= Ende
Member: Logan000
Logan000 Feb 18, 2009 at 14:11:21 (UTC)
Goto Top
Moin

Das freut mich. Ehrlich.
Aber an deinen Problembeschreibungen must Du noch arbeiten.
Ich habs immer noch nicht gepeilt.
Ob es an mir liegt? Neeeeee!

Gruß L.