Article View: de.comp.datenbanken.misc
Article #4Re: Richtige Lösung einer Prüfungsaufgabe?
From: Ulrik Hoffmann
Date: Mon, 11 Jun 2001 10:02
Date: Mon, 11 Jun 2001 10:02
121 lines
4592 bytes
4592 bytes
"Ulrik Hoffmann" <ulrik.peer@hoffmann-kiel.de> schrieb im Newsbeitrag
news:9g247b$6kjq5$1@ID-13717.news.dfncis.de...
>
> > Ich habe eine Meinungsverschiedenheit mit meinem Datenbank-Dozenten
> > betreffend der richtigen L�sung einer Pr�fungsaufgabe. Unten seht ihr
die
> > Datenbankstruktur und die beiden L�sungen. Mir ist nicht klar, was an
> meiner
> > L�sung falsch sein soll. Der Dozent behauptet, das funktioniere so nicht
> mit
> > Subqueries hinter dem FROM(Steht aber so im Referenz-Manual, das er uns
> > abgegeben hat) und das sei sowieso nicht behandelt worden.
> >
> [SQL gesnippt]
> Deine L�sung ist nicht falsch, aber alles andere als elegant. Dein
�u�erstes
> SQL-Statement ist �berfl�ssig. Ich w�rde das auch immer so wie der Prof.
> machen. Abgesehen davon funktionieren Subqueries beweisbar nach dem "from"
> in Oracle sehr gut.
Leider ist Deine L�ung doch falsch: es liegt an der falschen Group by
Expression, nicht an den Selects nach dem From:
Protokoll:
SQL> create table kunde(
2 Kunde varchar2(100),
3 name varchar2(100),
4 vorname varchar2(100),
5 adresse varchar2(100));
Tabelle wurde angelegt.
SQL> create table
2 Bestellung
3 ( nummer varchar2(100),
4 datum date,
5 k_nummer varchar2(100))
6 ;
Tabelle wurde angelegt.
SQL> create table
2 Bestellposten
3 (b_nummer varchar2(100),
4 a_code varchar2(100),
5 menge varchar2(100))
6 ;
Tabelle wurde angelegt.
SQL> create table Artikel
2 (code varchar2(100),
3 bezeichnung varchar2(100));
Tabelle wurde angelegt.
SQL> SELECT code, bezeichnung, summe
2 FROM
3 (
4 SELECT code, bezeichnung, SUM(menge) AS summe
5 FROM
6 (
7 SELECT code, bezeichnung, datum, menge
8 FROM Bestellung, Bestellposten, Artikel
9 WHERE code = a_code
10 AND Bestellung.nummer = Bestellposten.b_nummer
11 )
12 WHERE datum BETWEEN
13 TO_DATE('1.1.1999','dd.mm.yyyy') AND
TO_DATE('31.12.1999','dd.mm.yyyy')
14 GROUP BY code
15 )
16 ORDER BY summe DESC;
SELECT code, bezeichnung, SUM(menge) AS summe
*
FEHLER in Zeile 4:
ORA-00979: not a GROUP BY expression
SQL>
SQL> SELECT code, bezeichnung, SUM(menge)
2 FROM Artikel a, Bestellposten p, Bestellung b
3 WHERE a.code = p.a_code
4 AND p.b_nummer = b.nummer
5 AND datum BETWEEN
6 TO_DATE('1.1.1999','dd.mm.yyyy') AND TO_DATE('31.12.1999','dd.mm.yyyy')
7 GROUP BY code, bezeichnung
8 ORDER BY 3 DESC;
Es wurden keine Zeilen ausgew�hlt
So funktioniert auch Deine L�sung:
SQL> SELECT code, bezeichnung, summe
2 FROM
3 (
4 SELECT code, bezeichnung, SUM(menge) AS summe
5 FROM
6 (
7 SELECT code, bezeichnung, datum, menge
8 FROM Bestellung, Bestellposten, Artikel
9 WHERE code = a_code
10 AND Bestellung.nummer = Bestellposten.b_nummer
11 )
12 WHERE datum BETWEEN
13 TO_DATE('1.1.1999','dd.mm.yyyy') AND TO_DATE('31.12.1999','d
14 GROUP BY code, bezeichnung
15 )
16 ORDER BY summe DESC;
Es wurden keine Zeilen ausgew�hlt
Gru�
Ulrik
Technical Details
Message-ID:
<9g24uo$6jsjh$1@ID-13717.news.dfncis.de>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!firewall1-hme0.boettcher-hinrichs.COM!not-for-mailReferences:
<9g239e$6o5qb$1@ID-86276.news.dfncis.de> <9g247b$6kjq5$1@ID-13717.news.dfncis.de>Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,CP1252 X-Google-Thread: 10c1fa,67427267125c0be X-Google-Attributes: gid10c1fa,public X-Google-Thread: 108955,67427267125c0be X-Google-Attributes: gid108955,public X-Google-ArrivalTime: 2001-06-11 03:02:02 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!firewall1-hme0.boettcher-hinrichs.COM!not-for-mail From: "Ulrik Hoffmann" <ulrik.peer@hoffmann-kiel.de> Newsgroups: de.comp.datenbanken.misc,ch.comp Subject: Re: Richtige Lösung einer Prüfungsaufgabe? Date: Mon, 11 Jun 2001 12:02:01 +0200 Lines: 128 Message-ID: <9g24uo$6jsjh$1@ID-13717.news.dfncis.de> References: <9g239e$6o5qb$1@ID-86276.news.dfncis.de> <9g247b$6kjq5$1@ID-13717.news.dfncis.de> NNTP-Posting-Host: firewall1-hme0.boettcher-hinrichs.com (213.61.138.125) Mime-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 8bit X-Trace: fu-berlin.de 992253720 6943345 213.61.138.125 (16 [13717]) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400