Doppelte Werte aus Bestellung filtern [MySQL]

  • VB6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von petaod.

    Doppelte Werte aus Bestellung filtern [MySQL]

    Hi zusammen,

    ich habe folgende Abfrage:

    select o.increment_id, o.base_subtotal, i.sku, i.name, i.product_type
    from sales_flat_order_item i
    join sales_flat_order o on i.order_id = o.entity_id

    Ergebnis:


    Problem:
    In der ersten Bestellung (increment_id 431275449) ist der Artikel WTY87701 doppelt drin. Einmal als einzelner Artikel (Zeile 2), einmal als Bundle Artikel (Zeile 1). Der einzelne Artikel sollte jedoch rausgefiltert werden, da er ja schon in dem Bundle steckt. Bundle und Simple Artikel haben immer den gleichen Namen -> siehe Spalte "name".

    Jetzt könnte man den Artikel so rausfiltern:
    Für jede Bestellung muss geschaut werden, ob es innerhalb dieser Bestellung (also wo die increment_id gleich ist) Zeilen gibt, in denen die Spalte "name" gleich ist. Ist im Beispiel der Fall in Zeile 1 und 2. Dann sollte die Zeile rausgenommen werden in der der product_type gleich "simple" ist. So bleibt dann nur noch der bundle Artikel drin und alles ist gut.Aber wie schreib ich das in MySQL?

    Wäre sehr cool wenn jemand helfen könnte...
    Deine Bilder sind, zumindest für mich, nicht sichtbar (wegen vertrausenunwürdigem Server).

    HRGS schrieb:

    WTY87701
    Klingt irgendwie nach Bosch-Trockner ;)

    HRGS schrieb:

    wie schreib ich das in MySQL?
    Ich glaube, das ist ein Denkfehler im Design.
    In meinen Augen ist das eine sehr heikle Aufgabe der Anwendung selbst und keine Frage des SQL-Requests.
    Wenn das ein Bundle ist, wird es wohl hoffentlich eine Auflistung der Einzelartikel geben.

    Ansonsten kannst du natürlich abprüfen, ob zwei deiner Artikel denselben Namen tragen.

    Was machst du, wenn einer ein Bundle und ein Einzelexemplar bestellen möchte?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()