benno
Grünschnabel
Hi!
Ich hab da ein Problem mit der "group by"-Funktion. Vielleicht ist das ganz einfach, aber ich hab weder im Internet noch in den bisherigen Einträgen gefunden.
Es handelt sich um 3 Tabellen:
table1:
ID | Wert
----------------
34 | 50
66 | 100
58 | 400
43 | 670
Bei der ersten Tabelle handelt es sich einfach um eine ID der ein Preis zugeordnet ist.
table2:
ID | Name
----------------------
34 | München
66 | Wien
58 | Munich
43 | Vienna
Der gleichen ID ist in der zweiten Tabelle ein Name - in dem Fall eine Stadt zugeordnet.
table3:
Nr | Name_de | Name_en
-----------------------------------------
1 | München | Munich
2 | Wien | Vienna
Und die dritte Tabelle ist eigentlich nur eine Übersetzungstabelle.
Das Ganze sollte so ablaufen:
Die Kosten für eine Stadt sollten summiert werden. Meine Ausgabe sollte also so ausschauen:
München 450
Wien 770
Die Stadt wird in deutsch ausgegeben und dahinter die Summe der Preise für die jeweilige Stadt.
Ich habs schon mit folgendem sql-Statement versucht, aber ich komm nicht zum Ziel!
SELECT t3.Name_de, t1.ID, sum(t1.Wert)
FROM table1 t1, table2 t2, table3 t3
WHERE t1.ID = '[wert]'
AND t1.ID = t2.ID
AND (t2.Name like t3.Name_de OR t2.Name like t3.Name_en)
GROUP BY t1.ID
Da krieg ich immer die Fehlermeldung: "Die t3.Name_de-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in einer GROUP BY-Klausel enthalten ist."
Das ist mir dann auch klar und ich hab auch schon etliche andere Variationen ausprobiert, aber bin nicht zum gewünschten Ergebnis gekommen.
Wenn ich im GROUP BY- Teil das "t3.Name_de" hinzufüge, dann stimmt die Ausgabe nicht mehr: da unterscheidet er auch zwischen Munich und München, weil ja deutsch und englisch verscchieden sind(ach neee! )
Wollte auch schon die Tabellen ändern, aber das geht leider nicht!
Hat vielleicht von euch jemand ne Idee wie das SQL-Statement für die 3 Tabelle aussehen muss, damit ich die gewünschte Ausgabe kriege?
Sorry, dass es so viel zu lesen war, aber ich wollte euch mein Problem genau beschreiben -> in der Hoffnung, dass mir jemnad weiterhelfen kann!
mfg
benno
Ich hab da ein Problem mit der "group by"-Funktion. Vielleicht ist das ganz einfach, aber ich hab weder im Internet noch in den bisherigen Einträgen gefunden.
Es handelt sich um 3 Tabellen:
table1:
ID | Wert
----------------
34 | 50
66 | 100
58 | 400
43 | 670
Bei der ersten Tabelle handelt es sich einfach um eine ID der ein Preis zugeordnet ist.
table2:
ID | Name
----------------------
34 | München
66 | Wien
58 | Munich
43 | Vienna
Der gleichen ID ist in der zweiten Tabelle ein Name - in dem Fall eine Stadt zugeordnet.
table3:
Nr | Name_de | Name_en
-----------------------------------------
1 | München | Munich
2 | Wien | Vienna
Und die dritte Tabelle ist eigentlich nur eine Übersetzungstabelle.
Das Ganze sollte so ablaufen:
Die Kosten für eine Stadt sollten summiert werden. Meine Ausgabe sollte also so ausschauen:
München 450
Wien 770
Die Stadt wird in deutsch ausgegeben und dahinter die Summe der Preise für die jeweilige Stadt.
Ich habs schon mit folgendem sql-Statement versucht, aber ich komm nicht zum Ziel!
SELECT t3.Name_de, t1.ID, sum(t1.Wert)
FROM table1 t1, table2 t2, table3 t3
WHERE t1.ID = '[wert]'
AND t1.ID = t2.ID
AND (t2.Name like t3.Name_de OR t2.Name like t3.Name_en)
GROUP BY t1.ID
Da krieg ich immer die Fehlermeldung: "Die t3.Name_de-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in einer GROUP BY-Klausel enthalten ist."
Das ist mir dann auch klar und ich hab auch schon etliche andere Variationen ausprobiert, aber bin nicht zum gewünschten Ergebnis gekommen.
Wenn ich im GROUP BY- Teil das "t3.Name_de" hinzufüge, dann stimmt die Ausgabe nicht mehr: da unterscheidet er auch zwischen Munich und München, weil ja deutsch und englisch verscchieden sind(ach neee! )
Wollte auch schon die Tabellen ändern, aber das geht leider nicht!
Hat vielleicht von euch jemand ne Idee wie das SQL-Statement für die 3 Tabelle aussehen muss, damit ich die gewünschte Ausgabe kriege?
Sorry, dass es so viel zu lesen war, aber ich wollte euch mein Problem genau beschreiben -> in der Hoffnung, dass mir jemnad weiterhelfen kann!
mfg
benno
Zuletzt bearbeitet: