Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL aus GH2

Empfohlene Antworten

Veröffentlicht

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.

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

wie wärs für c) mit folgender lösung:

SELECT Teilenummer, Bezeichnung, (Gesamtverbrach/Durchschnittsverbrauch) AS Umschlagshaeufigkeit FROM Teile WHERE (Gesamtverbrach/Durchschnittsverbrauch) < 3;

d)

UPDATE Teile set Verkaufspreis = Verkaufspreis * 1.02;

e)

SELECT sum(Lagerbestand*Verkaufspreis) FROM Teile WHERE ???='A';

geht bei a) auch

SELECT Teile.Teilenummer, Teile.Bezeichnung, Teile.Lagerbestand, Teile.Verkaufspreis

FROM Teile

WHERE (Teile_Klassifizierung="A");

??

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.

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

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.

Semikolons?

Da gehören auch keine hin!!!

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!

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!!!!!

Moment mal, gib doch mal so einen Befehl ein. Ohne ein SEMIKOLON nix los!

Check this out

Im Prinzip haste ja recht, aber es geht wohl um die verschiedenen DB-Systeme. Wie gesagt, MySQL und Access breuchen es, DB2 wohl nicht.

Dann muss es okay sein, die sagten nix von Access, oder???

Wäre auch der Hohn ;-) !!!

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.

Es stand doch garnix von DB2 oder Access geschrieben! Ich zitiere: Schreiben Sie dafür eine SQL-Anweisung!

Und hier sollte meiner Meinung nach schon ein Semikoli Semikola-Semikoli Semikola - stehen

Tachyoon

So in etwa hab isch des aach und mit Semikolon! So! is doch eigentlich auch worscht die Aufgabe war sowieso unmöglich! Und im letzten Jahr gestrichen worden!

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......

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:

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?

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 ...

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

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 ...

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:

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.