Zum Inhalt springen

Tabelle umwandeln


Hackschnitzel

Empfohlene Beiträge

Hallo,

ich hab folgendes Problem. Mal wieder :)

Ich hab ne Tabelle Bestellungen mit

Bestnr Preis

1 10

1 20

1 5

2 10

2 10

2 10

...

ich will jetzt die Tabelle so umwandeln, das die Bestnr nur einmal existiert und der jeweilige Preis dann aufsummiert wird. Ich hab es vor indem ich eine neue Tabelle anlege und die dazugehörigen Daten dann inserte. Meine Tabelle soll danach so aussehen:

Bestellungen2 mit

Bestrnr Preis

1 35

2 30

...

INSERT INTO Bestellungen2

SELECT ?????

FROM Bestellungen

Wie könnte das ganze aussehen?

Gruss

Hackschnitzel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das hat wunderbar geklappt. DANKE.

Aber ich hab noch was ganz wichtiges vergessen und zwar brauche ich noch eine Zeile.

Bestellungen 1

bestnr preis artikel

1 10 cola

1 20 bier

1 5 limo

2 10 cola

2 10 cola

2 10 cola

...

Ich will in die Bestellungen2 Tabelle noch eine Spalte. Und zwar, soll mir die Abfrage in die Spalte "drin" eine "1" reinschreiben, wenn unter der jeweiligen bestnr der artikel cola drin vorkommt, ansonsten eine "0". also die Tabelle soll wie folgt aussehen:

Bestellungen2 mit

bestnr preis drin

1 35 1

2 30 1

...

Wie kann ich das noch mit einbauen?

Ursprüngliche Abfrage:

INSERT INTO Bestellungen2

SELECT bestnr,sum(preis)

FROM Bestellungen

GROUP BY bestnr

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also mein Arbeit besteht darin mit anderen Programmen Tabellen auszuwerten.

Leider Spielen manche Programme mit der Struktur einiger Tabellen nicht mit. Daher muss ich sie umstrukturieren. Da mir aber die Fachkenntnis in SQL etwas fehlt, versuche ich nur dies etwas zu beschleunigen, da es nicht meine Arbeit wiederspiegelt.

Ich hoffe ich habe einen nötigen Grund, um eine Antwort zu erhalten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

INSERT INTO Bestellungen2

SELECT bestnr, SUM(preis), CASE Artikel drin WHEN "Cola" THEN 1 ELSE 0 END

FROM Bestellungen

GROUP BY bestnr

Das hier sollte wohl klappen, obwohl mir der Sinn der Aufgabe verborgen bleibt:

INSERT INTO Bestellungen2
SELECT bestnr, SUM(preis), CASE Artikel drin WHEN "Cola" THEN 1 ELSE 0 END
FROM Bestellungen
GROUP BY bestnr, CASE Artikel drin WHEN "Cola" THEN 1 ELSE 0 END[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiss das es wenig Sinn macht, ich versuche nur für mein Problem eine leichte Aufgabe zu finden. Dies sind auch keine Originaldaten.

Aber nochmal zurück. Nach ein bissl tüffteln mach er jetzt bei dieser Abfrage etwas:

INSERT INTO Bestellungen2

SELECT bestnr, SUM(preis), CASE WHEN Artikel = 'Cola' THEN 1 ELSE 0 END

FROM Bestellungen

GROUP BY bestnr, CASE WHEN Artikel = 'Cola' THEN 1 ELSE 0 END

Nur jetzt bekomme ich als Ergebnis,

1 10 1

1 25 0

2 30 1

...

es sollte aber, wenn möglich

1 35 1

2 30 1

...

rauskommen.

Er rechnet jetzt zu jeder bestnr eine Summe ohne Cola und eine Summe nur mit Cola aus. Aber er soll halt die komplette Summe ausrechnen, und in der dritten Spalte einfach nur angeben, ob in der Summe Cola enthalten ist oder nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn ich den case befehl im group by nicht unterbringe, bekomme ich immer die Fehlermeldung: "selected non-aggregate values must be part of the associated group."

Und wenn ich Artikel nach case und vor when schreibe, akzeptiert er die Syntax nicht. Also so wie ich es hab, führte er auf jeden Fall mal aus, aber nicht das was ich wollte.

Frag mich bitte nicht nach der Versionsnummer der Datenbank, hört sich dumm an, aber die finde ich nirgens. Es ist ein SQL-Assistent aus einem anderen Programm.

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