URL: https://www.overclockers.at/coding-stuff/gesucht_sql-abfrage_174530/page_1 - zur Vollversion wechseln!
ich kann meine sql abfrage nirgends finden
noe, scherz beiseite:
ich habe n problem mit einer abfrage:
table in dem es u.a. die werte 'form', date und time gibt.
form hat werte zwischen 1 und 10, und jetzt brauch ich ne ausgabe, die mir 10 zeilen ausgibt mit den aktuellsten date-time feldern, jeweils eins mit form 1, eins mit form 2 ... bis 10 halt.
danke, BuX
edit: ahja, diese abfrage gibt mir nur die erste aus (und das is leider die aelteste eingegebene)
$abfrage="SELECT form, uschrift, beitrag, username, time, date,visits,zahl_beitrag FROM forum GROUP BY form ORDER BY date DESC, time DESC";
dann mach aus desc ein asc
und frag pro forum ab und hängs mit union zusammen.
SELECT form, uschrift, beitrag, username, time, date,visits,zahl_beitrag FROM forum WHERE form =1 ORDER BY date ASC, time ASC LIMIT 10 UNION SELECT form, uschrift, beitrag, username, time, date,visits,zahl_beitrag FROM forum WHERE form =2 ORDER BY date ASC, time ASC LIMIT 10 UNION...
herzlichen dank.. ich hab gar net dran dacht *doH* danke funzt
huha, ich such ein ähnliches statement
nämlich eines, welches mir einfach die ergebnisse von mehreren statements (die alle gleich viel rows zurückgeben) "merged". sowas wie union, nur dass die spalten der verschiedenen statements erhalten bleiben.
z.b. such ich mir die altersverteilung von personen heraus und will nach männlich/weiblich trennen. in dem ergebnis sollen die spalten "alter", "gesamt", "männlich", "weiblich" vorhanden sein. weil ich aber nicht weiß, wie ich das in einem statement machen soll, will ich die ersten beiden spalten mit einem statement und die nächsten 2 mit 2 anderen machen.
ungefähr klar? und hat wer eine lösung auch? tia!
huh? nix is klar bei mir. suchst du vielleicht ein join?
hm... ich such was, um statements zu joinen (und nicht tabellen). die wirkung soll ähnlich wie die eines joins sein, aber ich will statements dafür angeben.
aber klar, was ich als ergebnis haben will? folgende tabelle
Code:Alter | Gesamt | Männlich | Weiblich 14 | 100 | 25 | 75
Code:SELECT distinct(alter) as Alter, (SELECT Count(*) from blafasl b1 where b1.alter = b.alter) as Gesamt, (SELECT Count(*) from blafasl b2 where b2.alter = b.alter and b2.geschlecht = "m") as Männlich, (SELECT Count(*) from blafasl b3 where b3.alter = b.alter and b3.geschlecht = "f") as Weiblich FROM blafasl b;
Zitat von tinkerCode:SELECT distinct(alter) as Alter, (SELECT Count(*) from blafasl b1 where b1.alter = b.alter) as Gesamt, (SELECT Count(*) from blafasl b2 where b2.alter = b.alter and b2.geschlecht = "m") as Männlich, (SELECT Count(*) from blafasl b3 where b3.alter = b.alter and b3.geschlecht = "f") as Weiblich FROM blafasl b;
sollte ja funktionieren, oder? (ich geh halt davon aus das alle informationen in einer Table stehn)
Code: PHPSELECT 2008-YEAR(Klient.GeschaetztesGebJahr) AS AlterInJahren, COUNT(*) AS Gesamt FROM Beratung INNER JOIN Klient ON (Klient_KlientID=KlientID) WHERE Beratung.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000' GROUP BY 2008-YEAR(Klient.GeschaetztesGebJahr) ORDER BY 1
Code:AlterInJahren | Gesamt 14 | 341 15 | 124
ich hab keine ahnung was du wirklich willst
hm, wie sind die daten auf die beiden tables aufgeteilt?
und die subselects sollten eh nur eine row bzw. nur einen wert zurückliefern
@ica: er hat ne table (ok, 2) in der alle personen aus wwi drin sind zu denen natürlich auch alter und geschlecht gespeichert sind. und jetzt will er halt wissen wieviele zb. 14 Jährige in diesem System erfasst sind und wieviele davon männlich und weiblich...
damn quote
ah... heut ist kein guter tag.
ich hab in der klienten-tabelle ein geschaetztes geburtsjahr drin, daraus rechne ich mir das alter. in 2 tabellen sind die daten, weil nur die klienten gezählt werden sollen, die eine beratung in einem gewissen zeitraum in anspruch genommen haben.
ich hoff, der edit oben gibt ein bissi mehr aufschluss, sonst geb ichs nämlich auf und geh nach hause...
//edit: das geht sicher nicht, ich komm nämlich grad drauf, dass die anzahl an rows nicht immer die gleiche sein muss muss also eine andere lösung finden...
Code:SELECT distinct(2008-YEAR(k.GeschaetztesGebJahr)) AS AlterInJahren, (SELECT count(*) from Klient k2 inner join beratung b on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k2.GeschaetztesGebJahr and b.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Gesamt, (SELECT count(*) from Klient k3 inner join beratung b1 on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k3.GeschaetztesGebJahr and k3.geschlecht = "maennlich" and b1.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Maennlich, (SELECT count(*) from Klient k4 inner join beratung b2 on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k4.GeschaetztesGebJahr and k4.geschlecht = "weiblich" and b2.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Weiblich, FROM Klient k ORDER BY 1
Zitat von tinkerCode:SELECT distinct(2008-YEAR(k.GeschaetztesGebJahr)) AS AlterInJahren, (SELECT count(*) from Klient k2 inner join beratung b on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k2.GeschaetztesGebJahr and b.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Gesamt, (SELECT count(*) from Klient k3 inner join beratung b1 on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k3.GeschaetztesGebJahr and k3.geschlecht = "maennlich" and b1.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Maennlich, (SELECT count(*) from Klient k4 inner join beratung b2 on (Klient_KlientID=KlientID) WHERE k.GeschaetztesGebJahr = k4.GeschaetztesGebJahr and k4.geschlecht = "weiblich" and b2.Datum BETWEEN '2007-01-01T00:00:00.000' AND '2008-02-24T00:00:00.000') as Weiblich, FROM Klient k ORDER BY 1
edit: code gefixt
Kleiner Schönheitsfehler:
Im äußersten Select solltest auch noch mit der Beratung joinen und auf Datum abfragen weil sonst kanns sein das er die subselects um sonst macht wenn es zb 13jährige Klienten gibt aber noch keiner von denen bei ner Beratung war.
Ansonsten: np, man hat ja Zeit in der Arbeit.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025