Preisabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Preisabfrage

    Hallo,

    zu einem Artikel gibt es mehrere Mengenrabatte.

    1 Stück = 10,00
    10 Stück = 9,50
    100 Stück = 8,50

    Es kann auch vorkommen, dass ein Kunde XY zu einer Menge noch zusätzlich 10 Prozent bekommt. In der Tabelle gibt es dann für den Kunden einen eigenen Datensatz mit der Kundennummer im Feld "kundennumm". Die Artikelnummer sowie die Anzahl ist jedoch gleich.

    Die Datenbank für die Preise hat folgende Struktur:

    "preisgruppe";"kundennumm";"Artikelnum";"Anzahl";"Preis";"Rabatt"

    Darin sind folgende Daten enthalten:

    PHP-Code:
    "1";"";"1010";"1";"10";""
    "1"
    ;"66130";"1010";"3";"10";"10"
    "1"
    ;"";"1010";"3";"10";""
    "1"
    ;"";"1010";"5";"10";"" 
    Bei meinem Statement werden die Preise für die Menge 3 doppelt ausgegeben. Was das Script tut, ist eigentlich richtig. Ich möchte aber bei der Anzahl von 3 Stück nur den Preis mit der entsprechenden Kundennummer bekommen und nicht der ohne Kundennummer. Wie muß ich mein SQL-Statement abändern?

    PHP-Code:
    SELECT *
    FROM `preisliste2`
    WHERE artikelnum '1010'
    AND preisgruppe =1
    OR kundennumm =66130
    ORDER BY anzahl ASC
    LIMIT 0 
    30 
    » http://www.htaccess-generator.com

  • #2
    Wenn du dir das farbig hervorgehobene Statement mal anguckst, solltest du's feststellen, oder hast du tatsächlich Artikelnummer als String und Kundennummer als Integer?

    Kommentar


    • #3
      kundennumm ist bei mir ein String. Habe nur zum testen eine Zahl eingegeben und das Statement so aus phpMyAdmin heraus kopiert. Daran liegt es aber nicht.

      Ich habe es nun mit "GOUP BY anzahl" versucht. Damit scheint es auch erstmal zu funktionieren, aber da ich bei "OR kundennumm = '66130'" geschrieben habe, weiß ich nicht ob er nicht doch irgendwann mal das leere Feld "kundennumm" sucht und mir den falschen Preis ausgibt.

      Wie ist die Reihefolge bei dieser Abfrage?

      Sucht er, wenn ich "GROUP BY anzahl" und "OR kundennumm = '66130'" verwende, zuerst in dem Feld kundennumm nach möglichen Einträgen oder ist das eher Zufall das es jetzt so funktioniert? Ich meine da ich ja OR verwende, könnte er ja auch nach "kundennumm = ''" suchen, oder?

      PHP-Code:
      SELECT *
      FROM preisliste2
      WHERE artikelnum 
      '1010'
      AND preisgruppe 1
      OR kundennumm '66130'
      GROUP BY anzahl
      ORDER BY anzahl ASC 
      » http://www.htaccess-generator.com

      Kommentar


      • #4
        Es gibt da irgendeine Ordnung, die ich aber aus dem Kopf nicht weiß, irgendwie ich glaub AND vor OR oder so....aber weißt du was IMMER ZUERST beachtet wird?

        KLAMMERN

        vielleicht mast du einfach mal Klammern um eine der Anweisungen, entweder um die beiden Sachen getrennt mit OR oder die beiden Sachen getrennt mit AND, jenachdem was du brauchst!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar

        Lädt...
        X