php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.01.2005, 16:33  
Gast
 
Beiträge: n/a
Standard [Erledigt] Abfragen, aber wie?

Ich habe eine Tabelle mit Preisen. Hier ein Ausschnitt davon:

PHP-Code:
kundennumm artikelnum preisgruppe anzahl preis
                      
10121          |   1               |   1       |102.500
66130            
10121     |   1                  |   1       |  10.000
                      
10121          |   1               |   3       |99.397
                      
10121          |   1               |   5       |97.328 
Wie man aus der Tabelle erkennt gibt es eine Zeile in der eine Kundennummer angegeben ist. Der Kunde bekommt bei diesem Artikel und der Anzahl den angegeben Preis. Bei allen anderen Mengen bekommt er die normale Preis.

Wie kann ich das in einem MySQL-Statement unterbringen, sodass jede Anzahl nur einmal erscheint, jedoch wenn die Kundennnummer in der Tabelle vorkommt auch dieser Preis gewählt wird und nicht der normale Stückpreis?

Meine bereits getesteten Statements gebe ich auch mal an. Leider weiß ich nun wirklich nicht mehr weiter. Vielleicht könnt ihr mir einen Tipp zu dem simplen Problem geben.
PHP-Code:
// 1.
SELECT *
FROM preisliste
WHERE artikelnum 
'10121'
AND preisgruppe 1
OR kundennumm '66130'
GROUP BY anzahl
ORDER BY anzahl ASC

// 2.
SELECT *
FROM preisliste
WHERE artikelnum 
'10121'
AND preisgruppe 1
UNION
SELECT 
*
FROM preisliste
WHERE artikelnum 
'10121'
AND preisgruppe 1
AND kundennumm '66130'
ORDER BY kundennumm DESCanzahl ASC

// 3.
SELECT *
FROM preisliste
WHERE artikelnum 
'10121'
AND preisgruppe 1
AND anzahl NOT IN (
SELECT *
FROM preisliste
WHERE artikelnum 
'10121'
AND preisgruppe 1
AND kundennumm '66130'
)
ORDER BY anzahl ASC 
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.01.2005, 16:37  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

das is schon mal nen ganz doofes db-design. machs doch lieber so, du hast eine tabelle, in der alle artikel stehen, mit artid und normalem preis und eine weitere in der dann rabatte stehen, gekennzeichnet durch kundenid, artid, anzahl und preis.
dann wird die abfrage ganz simpel...
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 27.01.2005, 16:39  
Gast
 
Beiträge: n/a
Standard

geht leider nicht, da die datenbank vorgegeben ist. aber ne nette anmerkung. vielleicht sollte ich denen das mal schreiben. kannst du mir auch mit meinem tabelledesign sagen wie es geht?
  Mit Zitat antworten
Alt 27.01.2005, 18:02  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

dann musst du bitte deine frage nochmal neu formulieren. weil daraus werd ich nich schlau. was genau willst du haben ? beispiele bitte.
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 27.01.2005, 20:21  
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 129
Ratte78
Standard

Wie schon fantast isch gesagt ist das Layout nicht so der Hit.
Aber folgendes sollte gehen:

select preis from artikel where kundennum=66130 and art=1021 and anz=1 or kd=0 and art=1021 and anz=1 order by kundennum desc limit 1;
Sollte maximal 2 Datensätze liefern. Einen mit und einen ohne Kundennummer. Die Sortierung und das Limit 1 sorgt dafür das der Richtige genommen wird.

Das setzt voraus das die KD-Nr. 0 quasi als Kennzeichen für die Standardpreise hergenommen werden kann.
__________________
Jede Lösung verändert das Problem.
Ratte78 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
xml abfragen mit simple xml rayman PHP Tipps 2008 14 25.06.2008 14:08
PDO und parallele Abfragen Normalo PHP Tipps 2008 1 09.06.2008 12:39
PHP bzw. mysql abfragen optimieren Kori Datenbanken 3 26.09.2007 21:02
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
mehrere Abfragen (Selects) verbinden???? CIMM Datenbanken 15 03.05.2006 18:59
Datentyp abfragen PHP Tipps 2006 7 24.02.2006 15:53
[Erledigt] 204 077 15-4 in DB mit WHERE als 204077154 abfragen Datenbanken 6 24.01.2006 11:47
Formularnamen abfragen? HStev PHP Tipps 2007 12 24.11.2005 17:52
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
[Erledigt] Dateiendung abfragen PHP Tipps 2005-2 6 18.08.2005 17:11
Tabellenname Abfragen PHP Tipps 2005-2 2 13.07.2005 14:42
2 count Abfragen PHP Tipps 2005-2 1 20.06.2005 14:24
info über mysql status abfragen nieselfriem Datenbanken 4 13.04.2005 09:42
Formulardaten in eine Datenbank speichern und abfragen DarkThunder PHP Tipps 2005 3 08.04.2005 21:33
Postvariablen eines Formulars abfragen PHP Tipps 2004 2 12.09.2004 16:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
stückpreis abfragen?

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.