ChristianDannenberg Geschrieben 25. August 2008 Teilen Geschrieben 25. August 2008 Guten Morgen zusammen, ich habe das Problem, das ich mehrere Datenselektionen (Oracle 8i) in einer Abfrage zusammenfassen will. Beispiel ich will einen Lagerbestand mit einer Wareneingangsmenge anzeigen lassen. Dazu mache ich erst die Selektion für den Lagerbestand und darin als Subselect die Menge des Wareneingangs. --------------------------------------------------- select lwi.Datum ,sum(Menge), (SELECT count(*) from (SELECT * From WE E where e.Datum=lwi.Datum) TEST_WE from Daten lwi where lwi.datum = '2008-08-21' group by lwi.datum,(SELECT count(*) from (SELECT * From WE E where Datum=lwi.Datum) ---------------------------------------------------- Nun gibt er mir aber eine Fehlermeldung aus, das ich kein Group by Ausdruck für "count(*)" angegeben habe. Leider weis ich hierbei nicht weiter. Gibt es noch Hilfe BIG THX Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chill3r Geschrieben 25. August 2008 Teilen Geschrieben 25. August 2008 Hi! Also ich würd das so machen: select lwi.Datum , sum(Menge), count(*) from (SELECT * From WE E where e.Datum=lwi.Datum) as TEST_WE from Daten lwi where lwi.datum = '2008-08-21' group by lwi.datum allerdings ohne Garantie Gruß chill3r Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ChristianDannenberg Geschrieben 25. August 2008 Autor Teilen Geschrieben 25. August 2008 Danke für die schnelle Antwort, aber leider funktioniert dies auch nicht. "Befehl wurde nicht korrekte beendet" Versuche mich gerade an "union" aber so ganz steige ich da noch nicht durch! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chill3r Geschrieben 25. August 2008 Teilen Geschrieben 25. August 2008 Oh jo, mein Fehler select lwi.Datum , sum(Menge), count(E.*) as TEST_WE_COUNT from Daten lwi, WE E where lwi.datum = E.datum and lwi.datum = '2008-08-21' group by lwi.datum Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 25. August 2008 Teilen Geschrieben 25. August 2008 Datumswerte immer mit to_date angeben, ansonsten wird die Ländereinstellung des Clients verwendet, was nicht immer zu dem gewünschten Ergebnis führt. and lwi.datum = to_date('2008-08-21','YYYY-MM-DD') Des weiteren enthält ein Datumswert in Oracle auch immer einen Zeitwert. Ist also im Datumswert auch ein Zweitwert ungleich 0:00:00 Uhr angegeben, so muss man auch diesen angeben oder den Wert vorher entsprechend umformatieren. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ChristianDannenberg Geschrieben 25. August 2008 Autor Teilen Geschrieben 25. August 2008 Leider auch nicht... "Ungültige Angabe von Benutzer.Tabelle.Spalte,Tabelle.Spalte oder Spalte" Nette Fehlermeldung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ChristianDannenberg Geschrieben 25. August 2008 Autor Teilen Geschrieben 25. August 2008 @dr.dimitri Danke für den Hinweis, die Uhrzeit schneide ich mit trunc weg. To_Date werd ich einfügen, sobald die Selektion funktioniert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 25. August 2008 Teilen Geschrieben 25. August 2008 Trag mal den fehlenden Alias im SUM ein. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ChristianDannenberg Geschrieben 25. August 2008 Autor Teilen Geschrieben 25. August 2008 Leider negative! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ChristianDannenberg Geschrieben 25. August 2008 Autor Teilen Geschrieben 25. August 2008 Hey hab es hinbekommen... select Datum, Kunde,we.WE_Pal, sum(lwi.Menge) from Test lwi, Firma f, (SELECT TO_CHAR(trunc(d.Datum),'YYYY-MM-DD') as Datum, f2.name as Kunde,count(dlu.Anzahl)as WE_Pal from Test2 DLU, Firma f2 where dlu.Firm_ID=f2.firm_id group by TO_CHAR(trunc(dlu.Datum),'YYYY-MM-DD') ,f2.name) WE where f.firm_id=lwi.firm_id and lwi.Datum = '2008-08-21' and we.datum=lwi.Datum and we.Kunde=f.name group by Datum, Kudne,we.WE_Pal Irgentwie doch einfach, wenn man es einmalgeschafft hat! Besten dank für die Hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.