Zum Inhalt springen

SQL aus GH2


Empfohlene Beiträge

Könnt Ihr mal die Eurer Meinung nach richtigen SQL Abfragen aus der GH2 posten? Hab keine Ahnung ob ich da in irgendeiner Weise richtig gelegen bin...

Hier nochmal die Aufgaben:

a) Für alle A-Teile sollen

- die Teilenummer

- die Bezeichnung

- der Lagerbestand

- der Verkaufpreis

auf dem Bildschirm angezeigt werden. Schreiben Sie dafür eine SQL-Anweisung.

B) Es sollen sämtliche Lieferer auf dem Bildschirm angezeigt werden, die das Teil mit der Teilenummer 4711 liefern können. Dabei sollen jeweils

- die Teilenummer

- die Lieferernummer

- die Firma

- der Preis des jeweiligen Lieferers ausgegeben werden. Schreiben Sie dafür eine SQL-Anweisung.

c) Es sollen sämtliche „Ladenhüter", d. h. alle Teile, bei denen die Umschlagshäufigkeit (Quotient aus Gesamtverbrauch durch Korrekturrand Durchschnittsverbrauch) < 3 ist, angezeigt werden. Dabei sollen jeweils

- die Teilenummer

- die Bezeichnung

- die Umschlagshäufigkeit

ausgegeben werden. Schreiben Sie dafür eine SQL-Anweisung.

d) Der Verkaufspreis soll für alle Teile um 2 % erhöht werden.

Schreiben Sie dafür eine SQL-Anweisung.

e) Der Gesamtwert für alle A-Teile soll auf dem Bildschirm angezeigt werden.

Schreiben Sie eine SQL-Anweisung, die für alle A-Teile die Summe der Verkaufspreise ausgibt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

c)

Select Teilenummer, Bezeichnung, ((Gesamtverbrauch/Durchschnittsverbrauch)<3) AS Umschlagshaeufigkeit

FROM teile;

oder

Select Teilenummer, Bezeichnung, (Gesamtverbrauch/Durchschnittsverbrauch) AS Umschlagshaeufigkeit

FROM teile

group by teilenummer

having Umschlagshaeufigkeit < 3;

also ich habe die untere lösung, da ich nicht gewusst habe ob die obere Rechnung in einem Schritt bei SQL durchführbar ist,

aber ich denke die untere müßte funktionieren, hab aber noch nichts getestet, die restlichen aufgaben waren eigentlich für jeden der schon mal ein bischen was mit sql gemacht hat kinderleicht, wer nicht war wohl ziemlich gearscht, SQL war aber vorrauszusehen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Leudz!

Hier meine Lösungen:

1)

Select Teilenummer, Bezeichnung, Lagerbestand, Verkaufspreis

From Teile

Where Teile_Klassifizierung = 'A'

2)

Select Teile_Lieferer.Teilenummer, Lieferer.Lieferernummer, Lieferer.Firma, Teile_Lieferer.Preis

From Teile_Lieferer, Lieferer

Where Teile_Lieferer.Teilenummer = 4711

AND Teile_Lieferer.Lieferernummer = Lieferer.Lieferernummer

3)

Select Teilenummer, Bezeichnung, (Gesamtverbrauch/Durchschnittsverbrauch)

From Teile

Where (Gesamtverbrauch/Durchschnittsverbrauch) < 3

4)

Update Teile

Set Verkaufspreis = Verkaufspreis * 1,02

5)

Select SUM(Verkaufspreis)

From Teile

Where Teile_Klassifizierung = 'A'

(Es sollten doch nur die Verkaufspreise aufsummiert werden, oder?)

Anm.: Weiß nicht mehr die genauen Tabellenbezeichnungen... Bin mir bei Aufgabe 2 also nicht mehr so sicher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey Loidö!

Ich hab' bei ALLEN SQL-Antworten die Semi Kolons vergessen. Ansonsten müssten aber vier von den fünf Aufgaben bei mir richtig sein. Weiss einer von Euch, ob ich dafür bluten muss???

Ich hatte eine Teilwiederholung und werde gehängt, wenn ich nochmal durchfalle...

Kratzer

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Kratzer

Hey Loidö!

Ich hab' bei ALLEN SQL-Antworten die Semi Kolons vergessen. Ansonsten müssten aber vier von den fünf Aufgaben bei mir richtig sein. Weiss einer von Euch, ob ich dafür bluten muss???

Ich hatte eine Teilwiederholung und werde gehängt, wenn ich nochmal durchfalle...

Kratzer

Hi Kratzer!

Soweit ich weiß, ist das Semikolon am Ende eines Statements eine Access-Eigenheit. Für DB2 brauchste die nämlich nicht, weswegen die Dir eigentlich nix anhaben können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, keine Semika keine Punkte! Leider ein wichtiger Bestandteil der Abfrage. Aber mal was anderes gab es nicht im letzten Jahr heiße Diskusionen ob SQL in dieser Form erlaubt oder nicht? Ich fand das nicht in Ordnung was da am Dienstag abging! So!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, die heißen dann wohl Semika.

Also, dass Kommas eigentlich Kommata heißen, wusste ich ja auch noch...

Gut gut, jetzt hab' ich drei antworten, zwei davon gefielen mir, eine nicht. Ich vertrau mal dem ersten, denn wenn der sagt, dass es eine Access-Eigenheit ist, dann wird das wohl stimmen.

Allerdings habe ich nur mit Access (Schule) und MySQL gearbeitet, und da brauchte ich die glaub' ich immer.

Naja, ich werde ja sehen...

Danke, Leute!!!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

a)

Select Teilenummer, Bezeichnung, Lagerbestand, Verkaufspreis

From Teile

Where Teile_Klassifizierung = 'A';

B)

Select Teilenummer, Lieferernummer, Preis, Firma

From Teile_Lieferer, Lieferer

Where Teilenummer = 4711;

c)

Select Teilenummer, Bezeichnung

From Teile

Where (Gesamtverbrauch/Durchschnittsverbrauch) < 3;

d)

Update Teile

Set Verkaufspreis = Verkaufspreis * 1,02;

e)

Select Sum(Verkaufspreis)

From Teile

Where Teile_Klassifizierung = 'A';

---

So habe ich es zumindest hingeschrieben. Wie richtig es ist, wird sich zeigen.

Das Komma bei d) dürfte falsch sein und bei c fehlt die Ausgabe der Umschlagshäufigkeit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt kommt doch mal wieder runter....

Die Prüfer wollen doch nur sehen, ob das SQL-Statement korrekt geschrieben ist. Ob jetzt da am Schluss noch ein Semikolon steht oder nicht wird die wohl kaum interessieren.

Und wie schon erwähnt wurde, hängt das ja von der verwendeten DB ab.

Verwendest du eine MySQL-DB, dann brauchst du die Teile auf jeden Fall, bei einer Oracle dagegen nicht......

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Tachyoon

B)

Select Teilenummer, Lieferernummer, Preis, Firma

From Teile_Lieferer, Lieferer

Where Teilenummer = 4711;

hier fehlt die verknüpfende bedingung der tabellen teile_lieferer und lieferer, es sollten nur die lieferer angezeigt werden, die das teil mit der nr 4711 liefern können, also

select teile_lieferer.teilenummer, teile_lieferer.lieferernummer, teile.lieferernummer

from teile_lieferer, teile

where teile_lieferer.lieferernummer = lieferer.lieferernummer

and

teile_lieferer.teilenummer = "4711";

das ist ein einfaches JOIN, man hätte das ganze auch mit einem INNER JOIN lösen können, da weiss ich allerdings die syntax nicht 100% :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Tachyoon

c)

Select Teilenummer, Bezeichnung

From Teile

Where (Gesamtverbrauch/Durchschnittsverbrauch) < 3;

da hab ich

select teilenummer, bezeichnung, (gesamtverbrauch/durchschnittsverbrauch) as umschlaghäufigkeit

from teile

where (gesamtverbrauch/durchschnittsverbrauch) < 3;

sicher bin ich mir allerdings nicht *schäm*

hätte man z.b. in der where-bedingung gleich den vorher gesetzten spaltenalias benutzen können?

also

where umschlaghäufigkeit < 3?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Leute,

also, ich kann nicht glauben, dass es bei den sql statements bei der richtigkeit entscheidend ist, ob man diese mit einem semikolon beendet. ich lerne in der firma sql mit zugriff auf eine oracle datenbank und da funktionieren beide varianten ... ich denke, es sollte einzig und allein um die syntax (also: select ... from ... where ... oder update tabelle set feld usw.) gehen ... mmmh, also macht euch doch nicht verrückt, ob sql mit oder ohne semikolon richtig ist ... wenn sich der ausschuss daran aufhängen, wäre es doch unfair, da es bei verschiedenen db-systemen unterschiedlich ist ... aber sql statements sind von der logik, syntax her doch identisch ... mmmh, zumindest meine erfahrung und einschätzung der lage ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann mir echt nicht vorstellen das man ein Semikolon am Ende des Statements brauchz.

Ein Statement ohne semikolon funzt bei Sybase ASE, SQL-Server und auch bei Access.

Cu, Smeagol

P.S.

Die Aufgabe mit JOIN:


SELECT teile_lieferer.teilenummer,

	teile_lieferer.lieferernummer,

	teile.lieferernummer 

FROM teile_lieferer

INNER JOIN teile ON

	teile_lieferer.lieferernummer = lieferer.lieferernummer 

WHERE teile_lieferer.teilenummer = 4711

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Smeagol

Ich kann mir echt nicht vorstellen das man ein Semikolon am Ende des Statements brauchz.

bei mySQL geht nichts ohne das semikolon am ende eines statements und da ich ausschliesslich damit arbeite hab ichs auch hingeschrieben ...

ich denke nicht, das bei der korrektur darauf geachtet wird gerade weil die dbms das halt unterschiedlich handeln ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von *******

da hab ich

select teilenummer, bezeichnung, (gesamtverbrauch/durchschnittsverbrauch) as umschlaghäufigkeit

from teile

where (gesamtverbrauch/durchschnittsverbrauch) < 3;

sicher bin ich mir allerdings nicht *schäm*

hätte man z.b. in der where-bedingung gleich den vorher gesetzten spaltenalias benutzen können?

also

where umschlaghäufigkeit < 3?

Soweit ich das verstanden habe, wird die SQL-Abfrage wie folgt abgearbeitet: FROM, WHERE, SELECT

Demnach ist der Alias der SELECT-Anweisung zu dem Zeitpunkt, an dem die WHERE-Klausel ausgewertet wird, unbekannt, so daß Du ihn dort nicht verwenden kannst. :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

a) select teile.teilenummer, teile.bezeichnung, teile.lagerbestand, teile.verkaufspreis

from teile

where teile.teile_klassifizierung = "A";

B) select teile_lieferer.teilenummer, lieferer.liefernummer, lieferer.firma, teile_lieferer.preis

from teile_lieferer, lieferer

where teile_lieferer.teilenummer = 4711 and teile_lieferer.lieferernummer = lieferer.lieferernummer;

bin mir sicher, daß das auch mit inner join geht...

c) select teile.teilenummer, teile.bezeichnung, teile.gesamtverbrauch/teile.durchschnittsverbrauch

from teile

where teile.gesamtverbrauch/teile.durchschnittsverbrauch < 3;

d) update teile

set teile.verkaufspreis = teile.verkaufspreis*1.02;

e) select sum(teile.verkaufspreis)

from teile

where teile.teile_klassifizierug="A";

... je 4 pkt

vom ihk-löser entnommen

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...