FAQ |
Kalender |
2004-07-21, 14:48 | #1 | ||
|
|||
Medlem
|
Vill göra en beräkning i SQL mot min mySQL-databas men vet inte riktigt om det fungerar.
Jag har 2 tabeller och vill göra följande beräkning: SELECT tabell1.namn, (tabell1.tal - SUM(tabell2.tal)) as nytttal FROM tabell1, tabell2 WHERE tabell1.id = 1 AND tabell2.id = tabell1.id får detta felmeddelandet: TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause Antar att jag på något sätt måste använda group by men var och hur? |
||
Svara med citat |
2004-07-21, 15:31 | #2 | ||
|
|||
Mycket flitig postare
|
Svårt att säga när man inte vet hur dina tabeller är uppbyggda eller vad de ska göra men jag gissar:
SELECT tabell1.namn, (tabell1.tal - SUM(tabell2.tal)) as nytttal FROM tabell1, tabell2 WHERE tabell1.id = 1 AND tabell2.id = tabell1.id GROUP BY tabell1.id |
||
Svara med citat |
2004-07-21, 21:50 | #3 | ||
|
|||
Medlem
|
Lyckas inte lösa det tyvärr, kan någon förklara hur man ska använda GROUP BY, vilken ska jag gruppera efter?
|
||
Svara med citat |
2004-07-22, 13:03 | #4 | ||
|
|||
Nykomling
|
Citat:
http://dev.mysql.com/doc/mysql/en/GROUP-BY...-Functions.html |
||
Svara med citat |
2004-07-22, 16:37 | #5 | ||
|
|||
Medlem
|
Tack så mycket - nu ska det nog lösa sig hoppas jag.
|
||
Svara med citat |
2004-07-22, 23:33 | #6 | ||
|
|||
Medlem
|
Får det tyvärr inte riktigt att fungera så beskriver vad jag vill få fram istället. Lagt till några SQL-delar så att ni kanske lättare förstår vad jag menar, var krångligt att i ord berätta vad jag vill utföra nämligen...
Jag vill få fram alla rader i tabell1 som värdet tal är större än vad värdet tal2 är totalt (SUM(tabell2.tal2))för alla rader i tabell2 med samma id (tabell1.id = tabell2.id) som i tabell1. Vill få fram hur mycket större tal1 är än alla dessa tal2 tillsammans om det skulle vara fallet, är tal1 = SUM(tabell2.tal2) så vill jag inte få fram raden i tabell1. |
||
Svara med citat |
Svara |
|
|