![]() |
Datenbank: Oracle • Version: 9 • Zugriff über: Hibernate
Probleme mit sum function in sql-Statement
Hallo,
ich habe mal wieder Probleme beim Verständnis einer Datenbankabfrage:
Code:
Frage ich die Summe der Stunden emppersacct.mi mit ab, so bekomme ich eine Fehlermeldung "SQL-Grammar-Exception". Frage ich hingegen nur die Summe ab oder nur die einzelnen Spalten ohne Summe, so funktioniert das Statement.
select
persacct.code, emppersacct.nomDate, emppersacct.updTs, tcslogin.firstName, tcslogin.lastName, emppersacct.mi, sum(emppersacct.mi) from EmpPersAcct emppersacct left join emppersacct.tcsLogin tcslogin inner join emppersacct.persAcct persacct where persacct.code='URLAUB' and emppersacct.emp.empSk=-979941237706 Ich verstehe nicht warum ich an die normale Tablle mit den aufgeführten Spalten nicht eine weitere hinzufügen kann, in der jeweils die Summenstunden stehen? Kann mich jemand aufklären? Was ist das Problem? |
Re: Probleme mit sum function in sql-Statement
von welchem Typ ist emppersacct.mi ?
|
Re: Probleme mit sum function in sql-Statement
Hi,
Zitat:
|
Re: Probleme mit sum function in sql-Statement
Die art der Fehlermeldung irretiert mich etwas. das eine kommt beim genaueren Hinsehen nicht mehr:
da Sum eine Aggregat-Funktion ist bezieht sie sich immer auf eine Gruppe (ohne Gruppierung = all DS). man kann also immer entweder die Einzelwerte oder die Summe erhalten. |
Re: Probleme mit sum function in sql-Statement
hi,
du solltest bei dieser Abfrage ein GROUP BY verwenden. Dies könnte z.b. so aussehen
SQL-Code:
versuchs einfach mal. ciao ;O) R.
select
persacct.code, emppersacct.nomDate, emppersacct.updTs, tcslogin.firstName, tcslogin.lastName, emppersacct.mi, sum(emppersacct.mi) as summe from EmpPersAcct emppersacct left join emppersacct.tcsLogin tcslogin inner join emppersacct.persAcct persacct where persacct.code='URLAUB' and emppersacct.emp.empSk=-979941237706 GROUP BY persacct.code |
Re: Probleme mit sum function in sql-Statement
Hi mkinzler,
das heißt ich muss eine Gruppierung bilden, um beides zu erhalten?
Code:
Gruppiere ich es so, bekomme ich nur die Summe der jeweiligen Gruppe. Lasse ich emppersacct.mi im Group by weg, bekomme ich wieder die gleiche Exception.
select
persacct.code, emppersacct.nomDate, emppersacct.updTs, tcslogin.firstName, tcslogin.lastName, emppersacct.mi, sum(emppersacct.mi) from EmpPersAcct emppersacct left join emppersacct.tcsLogin tcslogin inner join emppersacct.persAcct persacct where persacct.code='URLAUB' and emppersacct.emp.empSk=-979941237706 group by persacct.code, emppersacct.nomDate, emppersacct.updTs, tcslogin.firstName, tcslogin.lastName, emppersacct.mi Was mache ich noch falsch? Wie gruppiere ich richtig, um das gewünschte Ergebnis zu erhalten? |
Re: Probleme mit sum function in sql-Statement
Mir fällt grade auf das Du das empersacct hier doppelt hast
SQL-Code:
Hat das einen bestimmten Sinn?
from
EmpPersAcct emppersacct |
Re: Probleme mit sum function in sql-Statement
Zitat:
Zitat:
Gruß onlinekater |
Re: Probleme mit sum function in sql-Statement
Zitat:
Gruß onlinekater |
Re: Probleme mit sum function in sql-Statement
Hi onlinekater,
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz