Gast freescale Geschrieben 29. August 2006 Teilen 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast freescale Geschrieben 29. August 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.