🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.datenbanken.misc
Article #4

Re: Richtige Lösung einer Prüfungsaufgabe?

#4
From: Ulrik Hoffmann
Date: Mon, 11 Jun 2001 10:02
121 lines
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-mail
References: <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