SQL
-
Hi @ all
eigentlich hat mein Problem nichts direkt mit MFC zu tun (sondern SQL), ich wusste aber nicht wohin.
Folgende Situation:
ID Name Value
200 a 50
250 b 100ich muss aus der Tabelle die Anzahl der IDs auslesen wo a = 50 und b = 100 ist.
Ich weiss jedoch nicht wie ich in der where Bedingung zwei mal die Spalte Value abfragen kann !Hat jemand ein paar Tips ?
Thx
-
hi,
or?
select * from tabelle where nr = 50 or nr = 100;
oder
select * from tabelle where nr in (50, 100);
-
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 = 100Also 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=100Das 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=100das 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=100benutzt, wie soll dein Feld Name gleichzeitig "a" und "b" sein!
das geht nicht, deshalbWHERE Name='a' AND Value=50
OR Name='b' AND Value=100Edit:
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
alaSELECT 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