• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[MYSQL] Abfrage in MySQL ... will nicht so wie ich will

overhead

New member
Hallo Leute,

ich habe im MYSQL eine Abfrage gestartet:
Code:
SELECT pid,ff_name,value FROM `tl_formdata_details`
Where `ff_name` in ('Bauteil1','menge_Bauteil1', 'Bauteil2','menge_Bauteil2')
order by `pid` ASC

Da kam dann folgendes raus:
pidff_namevalue
267bauteil1ZE-Umbauset
267 menge_bauteil11
267bauteil2Degen
267 menge_bauteil224
270bauteil1RJ45-Hub
270menge_bauteil12
270bauteil2Econamic Grid Router
270menge_bauteil25
272bauteil1Degen
272menge_bauteil112
272bauteil2Senec Batt Inverter 48 V - Pb
272menge_bauteil23

Nun möchte ich gern das die Bauteile so wie die dazugehörige menge gezählt werden.
Das dann am besten folgende Tabelle raus kommt:
valuecount(*)
ZE-Umbauset1
RJ45-Hub2
Degen36
Senec Batt Inverter 48 V - Pb3
Econamic Grid Router5

Kann mir da einer helfen eine Abfrage fertig zu machen.
 
Zuletzt bearbeitet:
das sieht mir eher nach einem kaputten DB-Design aus ...

aber du könntest das über ein JOIN lösen.
 
Zuletzt bearbeitet:
aber du könntest das über ein JOIN lösen.
Wie würde das aussehen? Ich fällt gerade nicht ein, wie das funktionieren sollte.

@overhead: Warum hat deine DB eigentlich nicht drei Spalten: pid, ff_name (für was auch immer das stehen soll), value (was ich ja in name umbenennen würde) und quantity? Dann wäre das SQL-Statement ziemlich einfach.
 
Wie würde das aussehen?
man generiert einen Schlüssel aus pid & [[menge_]bauteil]<zahl> und joint alle Einträge mit diesem Schlüssel. Das ist natürlich alles andere als schnell, geschweige denn effektiv. Wahrscheinlich ist es sogar einfacher, das erst nach dem Query (z.B. in PHP) zu machen.

- - - Aktualisiert - - -

aber wie schon gesagt, das eigentliche Problem ist die nicht normalisierte DB (nummerierte Einträge!)
 
Ahhh... hatte irgendwie gedacht, dass du über den JOIN die Summe schon erzeugst.

ABER ich würde auch auf jeden Fall die DB normalisieren/umstellen.
 
Zurück
Oben