KingelingDingDong Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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. 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. Zitieren
Cordoba Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 Zitieren
Snowghost Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 wie wärs für c) mit folgender lösung: SELECT Teilenummer, Bezeichnung, (Gesamtverbrach/Durchschnittsverbrauch) AS Umschlagshaeufigkeit FROM Teile WHERE (Gesamtverbrach/Durchschnittsverbrauch) < 3; Zitieren
Snowghost Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 d) UPDATE Teile set Verkaufspreis = Verkaufspreis * 1.02; Zitieren
Snowghost Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 e) SELECT sum(Lagerbestand*Verkaufspreis) FROM Teile WHERE ???='A'; Zitieren
KingelingDingDong Geschrieben 16. Mai 2002 Autor Geschrieben 16. Mai 2002 geht bei a) auch SELECT Teile.Teilenummer, Teile.Bezeichnung, Teile.Lagerbestand, Teile.Verkaufspreis FROM Teile WHERE (Teile_Klassifizierung="A"); ?? Zitieren
Uncle Reaper Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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. Zitieren
Kratzer Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 Zitieren
Uncle Reaper Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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. Zitieren
Sapatz Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 Semikolons? Da gehören auch keine hin!!! Zitieren
doil Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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! Zitieren
Kratzer Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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!!!!! Zitieren
doil Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 Moment mal, gib doch mal so einen Befehl ein. Ohne ein SEMIKOLON nix los! Check this out Zitieren
Kratzer Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 ;-) !!! Zitieren
Tachyoon Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 a) Select Teilenummer, Bezeichnung, Lagerbestand, Verkaufspreis From Teile Where Teile_Klassifizierung = 'A'; 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. Zitieren
doil Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 Zitieren
doil Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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! Zitieren
Snowghost Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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...... Zitieren
******* Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 Original geschrieben von Tachyoon 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% Zitieren
******* Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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? Zitieren
Gnomeline Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 ... Zitieren
Smeagol Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 Zitieren
******* Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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 ... Zitieren
gonzo69 Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 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. Zitieren
dodg3r Geschrieben 16. Mai 2002 Geschrieben 16. Mai 2002 a) select teile.teilenummer, teile.bezeichnung, teile.lagerbestand, teile.verkaufspreis from teile where teile.teile_klassifizierung = "A"; 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 Zitieren
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.