Gast freescale Geschrieben 29. August 2006 Geschrieben 29. August 2006 Hallo Leute, ich habe hier folgende Tabellenstruktur: a_NameToId - ItemId int - Name varchar b_IdToTime - TimeId int - ItemId int - DateAndTime timestamp c_TimeIdToData - TimeId int - Code varchar - Info varchar meine bisherige Query ist: SELECT c.TimeId, c.Code FROM c_TimeIdToData AS c LEFT JOIN b_IdToTime AS b ON b.TimeId = c.TimeId LEFT JOIN a_NameToId AS a ON a.ItemId = b.ItemId WHERE a.Name = "Katze" AND (c.TimeId = 5 OR c.TimeId = 1) Die Ausgabe hiervon ist dann auch... 1;"AA" 1;"CC" 1;"DD" 1;"FF" 5;"AA" 5;"CC" 5;"EE" nun möchte ich die Query aber so ändern, dass ich - die Elemente angezeigt bekomme, welche unter beiden IDs zu finden sind - nur die Elemente sehe, welche in 5 vorkommen, aber NICHT in 1 - und umgekehrt. Hat jemand von euch eine Idee wie ich das realisieren könnte? :ka: Oder, .. noch genialer wäre, ein Feld "Vorkommen" welches bei zwei treffern 0 ist, bei einem in "1" -1 ist und bei nur in "5" +1 wäre.. :ka: also, um bei dem Beispiel zu bleiben: "AA";0 (gleich) "CC";0 (gleich) "DD";-1 (weggefallen) "EE";1 (neu) "FF";1 (neu)
Gast freescale Geschrieben 29. August 2006 Geschrieben 29. August 2006 Hmm hab es doch auch allein geschafft. :-) Falls es jemanden interessiert, hier meine Lösung: SET @oldId = 1; SET @newId = 5; SET @name = "Katze"; SELECT c.Code, NOT EXISTS ( SELECT * FROM c_TimeIdToData AS c2 WHERE c2.TimeId = @oldId AND c2.Code = c.Code ) AS compare_IsNew, NOT EXISTS ( SELECT * FROM c_TimeIdToData AS c2 WHERE c2.TimeId = @newId AND c2.Code = c.Code ) AS compare_IsDropped FROM c_TimeIdToData AS c LEFT JOIN b_IdToTime AS b ON b.TimeId = c.TimeId LEFT JOIN a_NameToId AS a ON a.ItemId = b.ItemId WHERE a.Name = @name AND ( c.TimeId = @oldId OR c.TimeId = @newId ) GROUP BY c.Code; Code;compare_isNew;compare_isDropped "AA";0;0 "BB";1;0 "CC";0;0 "DD";0;1 "EE";1;0 "FF";0;1
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden