ll_cobra_ll Geschrieben 16. Februar 2007 Teilen Geschrieben 16. Februar 2007 Hallo, Vielleicht kann mir ja jem helfen. Weiss zwar nicht, ob ich hier richtig poste, habe aber kein spezielles SQL-Forum gefunden. Ich habe folgenden SQL-Befehl: SELECT* FROM aktuell WHERE ((Feld5 NOT LIKE "*local*" AND Feld6 NOT LIKE "*local*" AND Feld6 NOT LIKE "*Zentrale*"))AND(Feld2=[bitte Durchwahl eigeben:]); So, wenn ich nun die Durchwahl eingebe bringt er mir zwar die richtige Ausgabe, bloss er lässt die Zeilen aus, in denen nichts steht, also leere Datensätze. Wenn ich aber die Anzahl haben will, brauche ich diese Datensätze auch!! Warum macht er das? Gruß, cobra Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 16. Februar 2007 Teilen Geschrieben 16. Februar 2007 Mit Sql bist im .NET Bereich definitiv falsch. Ich schieb dich mal in die richtige Ecke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 16. Februar 2007 Teilen Geschrieben 16. Februar 2007 cobra: wo liegt das problem? ich verstehe dein anliegen nicht. wie können datensätze von interesse sein, die nicht als treffer gelten ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ll_cobra_ll Geschrieben 16. Februar 2007 Autor Teilen Geschrieben 16. Februar 2007 Es geht um die Auswertung einer Telefonliste. In Feld5 steht der der angerufen hat und in Feld6 der der angerufen wird. Wenn er nun nicht abnimmt, bleibt Feld6 leer, aber in Feld5 steht trotzdem was, muss also mitgezählt werden. Deshalb ist dieses leere Feld auch relevant. Ist die WHERE Bedingung in meinem Befehl denn überhaupt so möglich? Weil er gibt mir ja alle richtigen Daten aus, bloss die nicht in denen in Feld6 nichts steht. Eigentlich ja komisch! Ich denke eher, dass es was mit dem NOT LIKE zu tun hat. Aber ich bin nicht ganz so fit mit select-Befehlen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DevilDawn Geschrieben 16. Februar 2007 Teilen Geschrieben 16. Februar 2007 Idee (hier MySQL): mysql> select * from foo; +-----+----------+ | idx | filename | +-----+----------+ | 12 | NULL | | 13 | test | | 14 | text | +-----+----------+ 3 rows in set (0.00 sec) mysql> select * from foo where filename not like "test"; +-----+----------+ | idx | filename | +-----+----------+ | 14 | text | +-----+----------+ 1 row in set (0.00 sec) mysql> select * from foo where (filename not like "test" or isnull(filename)); +-----+----------+ | idx | filename | +-----+----------+ | 12 | NULL | | 14 | text | +-----+----------+ 2 rows in set (0.03 sec) Wie man sieht erfasst ein NOT LIKE nicht die Felder die NULL sind. Das wird wohl dein Problem sein. SELECT * FROM aktuell WHERE ( ( (Feld5 NOT LIKE "*local*") OR (ISNULL(Feld5)) ) AND ( (Feld6 NOT LIKE "*local*" AND Feld6 NOT LIKE "*Zenrale ") OR (ISNULL (Feld6)) ) AND (Feld2=[bitte Durchwahl eigeben:]); (Untested... aber you got the picture) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xk4fu Geschrieben 16. Februar 2007 Teilen Geschrieben 16. Februar 2007 du brauchst unterselects in denen jeweils zum bsp auf die id im über select verweist select (select * from feld6 where feld6.id = f6.id) as field6 from feld6 f6 usw 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.