keinohrhase: GROUP BY oder wie mache ich das

Hallo zusammen,
ich habe eine Tabelle in der Arttikel, die zu einem Warenkorb gehören, gespeichert sind.

Die Tabelle ist folgend aufgebaut:

id | basket_id | products_id | producer

Die basket_id bezieht sich auf den jeweiligen Warenkorb, die products_id auf den jeweiligen Artikel, Producer ordnet dem jeweiligen datensatz den Produzenten zu.

ich habe jetzt zum Beispiel:

1 | 109 | 25 | 1
2 | 109 | 26 | 1
3 | 109 | 35 | 2

Jetzt möchte ich aus diesen Daten Lieferscheine erstellen, möchte natürlich, das die Artikel, welche an von einem Produzenten sind, auf einen Lieferschein kommen.

Wie mache ich das ?

Bin für jederlei Vorschläge offen

Gruß
keinohrhase

  1. Mahlzeit keinohrhase,

    Die Tabelle ist folgend aufgebaut:

    id | basket_id | products_id | producer

    Die basket_id bezieht sich auf den jeweiligen Warenkorb, die products_id auf den jeweiligen Artikel, Producer ordnet dem jeweiligen datensatz den Produzenten zu.

    Hat ein Produkt immer genau einen Produzenten? Oder kommt es auf die Kombination Warenkorb-Produkt an, wer der Produzent ist?

    Du hast im Übrigen vergessen anzugeben, welches Datenbanksystem Du verwendest.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi, danke schonmal für Eure Aufopferung.

      Hat ein Produkt immer genau einen Produzenten? Oder kommt es auf die Kombination Warenkorb-Produkt an, wer der Produzent ist?

      Der Produzent wird dem Produkt manuell zugeordnet, so das zwei identische Produkte trotzdem von zwei diversen Produzenten kommmen könnten. Es besteht also keine allgemeine Beziehung zwischen Produkt und Produzent.

      Du hast im Übrigen vergessen anzugeben, welches Datenbanksystem Du verwendest.

      Entschuldige, wollte ich als letztes machen und hab es natürlich vergessen.
      MySQL 5

      @Steel
      Ich muss den Lieferschein splitten, da die Produkte die verkauft werden, erst Just in Time hergestellt werden, und die Lieferscheine dann jeweils an die verschiedenen Hersteller gehen sollen, welche direkt an den Kunden ausliefern.

      Gruß
      keinohrhase

      1. Hi!

        @Steel
        Ich muss den Lieferschein splitten, da die Produkte die verkauft werden, erst Just in Time hergestellt werden, und die Lieferscheine dann jeweils an die verschiedenen Hersteller gehen sollen, welche direkt an den Kunden ausliefern.

        Ahhh! Jetzt hab ich es gerafft! Ein Kunde packt den Wartenkorb voll und je nach Situation wird der Kaese von Bauer A oder B hergestellt/geliefert. (oder der Stuhl von Tischler C)  Du nimmst also den Warenkorb und moechtest herausfinden, welcher Produzent welche Waren liefern soll.

        Das ist eine Sache, die man, wie ich schon erwaehnt habe, wohl am Besten einem Programm ueberlaesst. Das heisst, du laesst dir den Warenkorb geben (am Besten nach Produzenten sortiert) und gehst dann durch die Liste. Bei jedem Gruppenwechsel schliesst Du einen Lieferschein ab und erstellt einen neuen.

        Das ganze geht natuerlich auch ueber die DB. Ein Group By hat da aber nichts verloren, da Du doch wohl die Daten der einzelnen Artikel benoetigst - ausser Du moechtest eine Liste der Produzenten eines Warenkorbs erstellen.

        --
        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
              - T. Pratchett
        1. Das ist eine Sache, die man, wie ich schon erwaehnt habe, wohl am Besten einem Programm ueberlaesst. Das heisst, du laesst dir den Warenkorb geben (am Besten nach Produzenten sortiert) und gehst dann durch die Liste. Bei jedem Gruppenwechsel schliesst Du einen Lieferschein ab und erstellt einen neuen.

          Hi,
          also würde ich einfach in eine Variable z.B. die Produzenten-ID speichern, und wenn sie sich wechselt, mache ich den nächsten Lieferschein !?

          Vielen Dank auf jeden Fall schoneinmal
          keinohrhase

          1. Mahlzeit keinohrhase,

            also würde ich einfach in eine Variable z.B. die Produzenten-ID speichern, und wenn sie sich wechselt, mache ich den nächsten Lieferschein !?

            Das wäre mir jetzt auch als erstes eingefallen ... probier's einfach mal aus und melde Dich, wenn's Probleme gibt.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. Hoi!

            also würde ich einfach in eine Variable z.B. die Produzenten-ID speichern, und wenn sie sich wechselt, mache ich den nächsten Lieferschein !?

            Ja. Das waere der Ansatz, der mir so ad hoc einfaellt.
            Warenkorb lesen.
            Gibt es Daten?
             Lieferschein erstellen
             Ersten Datensatz lesen, Produzent merken
             Datensatz verarbeiten
             naechster Datensatz
             Produzent prufen
              gleicher Produzent?
                Datensatz verarbeiten
              anderer Produzent?
                Lieferschein abschliessen und neuen erstellen.
            ...

            Man kann das ganze natuerlich auch in der DB machen und dort Lieferscheindaten generieren und in eine Lieferscheintabelle schreiben. Oder eine Mischung aus Programm und Datenbank. Es gibt immer viele Moeglichkeiten.

            --
            "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                  - T. Pratchett
  2. Hi!

    So ganz verstehe ich Dein Problem nicht. Du moechtest aus einem Warenkorb verschiedene Lieferscheine machen? Ich bekomme also, wenn ich ein Nokia und ein Samsung Mobiltelefon bestelle einen Nokia und einen Samsung Lieferschein?

    Generell bekommts Du eine Liste der gesuchten Eintraege indem Du nach der Producer ID suchst. Aber ich denke, das ist nicht Dein Problem und ich weiss nur grad nicht, was genau Du eigentlich willst.

    Spontan wuerde ich sagen, von der Datenbankseite hast Du schon was Du brauchst und musst nur noch dein Programm auf die Daten loslassen.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett