SQL



  • Hi, danke für die Antwort.

    Leider funkzioniert dein Vorschlag nicht !

    Es muss ein "and", nicht "or" sein. Aber mit "and" kriege überhaupt nichts
    raus !

    Die letztere kannte ich noch nicht. Scheint aber dasselbe zu sein !

    Noch ein paar Ideen ??

    Thx



  • solltest du in Speudo Quelltext sowas meinen?

    wo name='a' und Value=50 oder name='b' und value = 100

    dann ist das etwa so:

    where name='a' and value=50 or name='b' and value=100

    Ansonsten musst du dein Problem nochmal beschreiben - dann hab ich es nicht verstanden.



  • Probier mal:

    Select ID from Tabelle Where Name = 'a' And Value = 50 or Name = 'b' and Value = 100

    Mist! Zu spät. 😉



  • ich muss aus der Tabelle die Anzahl der IDs auslesen wo a = 50 und b = 100 ist.

    okay, versuch ich es nochmal.. hab das mit der anzahl überlesen.

    select count(*), name, value
    from table
    where name||'#'||value = 'a#50'
    or name||'#'||value = 'b#100'
    group by name||'#'||value
    

    damit solltest du jetzt die jeweils anzahl aller Zeilen bekommen wo
    name = a UND value = 50
    sowie
    name = b UND value = 100

    Also das Ergebis der beiden Zeilen von deinem Beispiel sollte sein:

    1, a,  50
    1, b, 100
    

    ansonsten weiss ich nciht was du mit "wo a = 50 und b = 100 ist." meinst 🙂



  • Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC mit dem Visual C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo,

    SELECT ID, Name, Value FROM Table 
    WHERE Name='a' AND Value=50
    OR Name='b' AND Value=100
    

    PS:
    Ich gehe im mom davon aus das Value ein Zahlenwert ist
    deshalb ohne '



  • Hi @ all

    WHERE Name='a' AND Value=50
    OR Name='b' AND Value=100
    

    ist eben Falsch !
    Was ich brauche ist :

    WHERE Name='a' AND Value=50
    AND Name='b' AND Value=100

    Das aber funktioniert nicht ! Mit der OR Verknüpfung kriege ich zuviele Datensätze !

    Gruß



  • WHERE Name='a' AND Value=50
    AND Name='b' AND Value=100

    das kann doch gar nicht gehen. Name kann doch nicht gleichzeitig a und b sein.

    Versuch es doch mal so:

    WHERE (Name='a' AND Value=50)
    OR (Name='b' AND Value=100)

    Oder versuch dein Problem mal genauer zu beschreiben.



  • goochie

    überleg mal, wenn du

    WHERE Name='a' AND Value=50
    AND Name='b' AND Value=100

    benutzt, wie soll dein Feld Name gleichzeitig "a" und "b" sein!
    das geht nicht, deshalb

    WHERE Name='a' AND Value=50
    OR Name='b' AND Value=100

    Edit:

    OK war wohl einer schneller, aber nur weil mich ne kollegin aufgehalten hat 😛



  • Ihr habt Recht ! Sorry, mein Fehler
    Ich kann ja nicht auf zwei Datensätze gleichzeitig zugreifen !

    Das heißt: ich muss erst alle IDs mit a = 50 raussuchen und dann erst ein count mit der ID und b = 100 !

    Thx



  • NEIN das kann SQL für dich auch erledigen
    wie dir schon auch "Tow-B.de" schon mitteilen wollte
    ala

    SELECT Count(ID) AS Anzahl, Name, Value
    FROM table GROUP BY Name, Value
    HAVING (Name='a' AND Value='50')
    OR (tabelle.Name='b' AND tabelle.Value='100')
    

    wobei das Feld "Anzahl" dir die Zusammenzählung anzeigt


Anmelden zum Antworten