php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2011, 15:28  
7Style
Gast
 
Beiträge: n/a
Standard [Erledigt] Datum Problem - mehrere auslaufdatums...

Hallo Leute ...

Ich habe 2 Tabellen :

tabelle 1 ist ein Kunden tabelle:

ID | NAME | FIRMA
1 eke test


in der Tabelle 2 werden verschiedene Datums gespeichert:
DATE_ID | KUNDEN_ID | DATUM_VON | DATUM BIS
1 1 2011-11-11 2011-11-12
2 1 2011-07-11 2011-07-25



das heißt wenn eingebene Datum zwichen diesen beiden Datums liegt soll der kunde nicht angezeigt werden. Aber leider funktioniert das bei mir nicht : hier meine SQL :


PHP-Code:
          SELECT
                        AK
.kunden_id,
                        
AK.kunde_mail
                    FROM adm_plz AP

                    LEFT JOIN adm_kunden AK
                    ON AP
.kunden_id AK.kunden_id

                    LEFT  JOIN  adm_umz_type AUT
                    ON  AP
.kunden_id AUT.kunden_id

                    LEFT  JOIN  adm_kunden_ausdate AUS
                    ON  AP
.kunden_id AUS.kunden_id


                    WHERE AK
.active 1

                    
AND now() > pausiert_von
                    
AND now() > pausiert_bis


          
-- hier START
          
AND NOT '2011-09-09' between IFNULL(AUS.startdate ,  '2030-12-12') AND IFNULL(AUS.stopdate ,  '2030-12-12')
          -- 
hier STOP

                    
AND AK.anf_erhalten  <= AK.adm_limit
                    
AND AUT.umzug_type_name 'umz'
                    
AND (

                     
accept_from 'int' OR (accept_from 'nat' AND AK.land 'Deutschland')
                    )

          
GROUP BY AK.kunden_id
                    ORDER BY
                        AK
.punkte  DESC ,
                        
AK.zw_punkte ASC,
                        
rand() 
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.06.2011, 15:36  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Zitat:
Zitat von 7Style Beitrag anzeigen
... in der Tabelle 2 werden verschiedene Datums gespeichert:
Code:
DATE_ID | KUNDEN_ID | DATUM_VON | DATUM BIS 
1         1           2011-11-11 2011-11-12
2         1           2011-07-11 2011-07-25
das heißt wenn eingebene Datum zwichen diesen beiden Datums liegt ...
Zwischen welchen beiden von diesen vier? Benennen diese "Datums" (Daten) einen inaktiven Zeitraum des Kunden und zu allen anderen Zeitpunkten war/ist er aktiv?

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist

Geändert von hausl (06.06.2011 um 15:41 Uhr).
hausl ist offline   Mit Zitat antworten
Alt 06.06.2011, 15:40  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Bitte bedenke bei deiner Datumabfrage, dass es genau 3 Fälle gibt, die du verhindern musst

1) Anfangsdatum liegt im "gefährlichen" Zeitraum
2) Enddatum liegt im "gefährlichen" Zeitraum
3) Anfangsdatum liegt davor UND Enddatum liegt danach

ich bin mir sicher, dass du noch nicht alle 3 Fälle beachtest hast
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 06.06.2011, 15:42  
7Style
Gast
 
Beiträge: n/a
Standard

Danke für schnelle antwort.


Ja. sagen wir mail wir haben als Datum das heutetige datum (06.06.2011).

und in der Tabelle gibst es 3 verschiede auslaufsdatum:

1-) von 01.06.2011 bis 25.06.2011
2-) von 01.09.2011 bis 25.09.2011
3-) von 01.09.2011 bis 25.09.2011

dieser Datum ist in erster Datensatz schon drin. also dürfte meine SQL abfrage mir diesen kunden garnicht holen,
aber der noch anrede 2 Datums hat, holt er mir diesen Kunden Trotztdem.

wenn ich nur EIN datum drinne habe funktioniert es !!!




Zitat:
Zitat von hausl Beitrag anzeigen
Zwischen welchen beiden von diesen vier ?

LG
  Mit Zitat antworten
Alt 06.06.2011, 15:44  
7Style
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
Bitte bedenke bei deiner Datumabfrage, dass es genau 3 Fälle gibt, die du verhindern musst

1) Anfangsdatum liegt im "gefährlichen" Zeitraum
2) Enddatum liegt im "gefährlichen" Zeitraum
3) Anfangsdatum liegt davor UND Enddatum liegt danach

ich bin mir sicher, dass du noch nicht alle 3 Fälle beachtest hast

Ich denke nicht, Wegen mein LEFT-JOIN hollt er mir den kunden eingetlich 3 x und wenn ein Datum gespert ist hollt er 2x ich will aber das er mir diesen Kunden garnicht hollt wenn irgend ein Datum Datum gespert ist
  Mit Zitat antworten
Alt 06.06.2011, 15:47  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

ich glaub du hast die Situation noch nicht genau genug beschrieben

wenn du wirklich 3 Termine hast - warum soll er dir denn nicht die andern 2 vorschlagen, wenn der erste Termin nicht passt ?

ansonsten musst du wohl mit if im Select arbeiten (erhöhe einfach einen Zähler um 1 , wenn der Termin in einem gesperrten Datumbereich landet, und per if verlangst du dann, dass der Zähler am Ende 0 sein muss -> Ergo , nur Kunden ohne Treffer haben da eine 0 und werden zurückgeliefert von der Datenbank
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (06.06.2011 um 15:52 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 06.06.2011, 15:59  
7Style
Gast
 
Beiträge: n/a
Standard

@eagle275 ich habe zwar nicht gut beschrieben. aber du hast es verstanden glabe ich

Zitat:
wenn du wirklich 3 Termine hast - warum soll er dir denn nicht die andern 2 vorschlagen, wenn der erste Termin nicht passt ?
weil dieser kunde in diser Zeit keine Anfragen haben möchte. deshalb wenn dieser termin ihm nicht passt aber SQL mir aber ihn trotzdem zeigt und ich die Anfrage versende habe ich ein Problem.

soo: dein vorschlag ist entersant aber ich muss zugeben ich habe noch nie mit IF in SQL gearbeitet ? hast du einen LINK oder beispeil für mich ?
  Mit Zitat antworten
Alt 06.06.2011, 16:11  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

tja .. klassischer Manual-Tipp.. ich weiß dass es damit geht, hab es aber selbst noch nie gebraucht ... von daher schau mal hier

http://dev.mysql.com/doc/refman/5.1/...functions.html

da gibts auch Beispiele mit recht einfacher Erklärung .... die Funktion heißt nicht if, sondern case , macht aber im Grunde genau das - bitte nicht mit PHP-switch-case durcheinanderbringen
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 06.06.2011, 16:15  
7Style
Gast
 
Beiträge: n/a
Standard

Dankeeee,,, ich schau mir das gleich an... ich hoffe ich löse das

Zitat:
bitte nicht mit PHP-switch-case durcheinanderbringen
nein nein in PHP-Ebene hätte man das schon längst gelöst aber das muss ich per SQL lösen.
  Mit Zitat antworten
Alt 06.06.2011, 16:44  
7Style
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
tja .. klassischer Manual-Tipp.. ich weiß dass es damit geht, hab es aber selbst noch nie gebraucht ... von daher schau mal hier

http://dev.mysql.com/doc/refman/5.1/...functions.html

da gibts auch Beispiele mit recht einfacher Erklärung .... die Funktion heißt nicht if, sondern case , macht aber im Grunde genau das - bitte nicht mit PHP-switch-case durcheinanderbringen
OK, auch Mit CASE holt er mir den Kunden, aber ich kann weningstens mit dem selbst gebauten Counter wissen ob der Kunde einen passenden Termin hat oder nicht. somit kann ich ihn ausschiließen.

Danke. ich weiss nicht ob das beste Lösung ist aber funktioniert
  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
[Erledigt] datum convert problem clemo Datenbanken 8 18.02.2011 09:29
Datum prüfen bierfest PHP Tipps 2010 10 30.07.2010 16:41
InputFeld initialisiert mit MySQL Datum format padre PHP Tipps 2010 6 06.06.2010 17:23
[Erledigt] Query Problem mit between bei Datum fulltilt PHP Tipps 2010 3 02.06.2010 12:43
[Erledigt] Gleiches Datum zusammenfassen / Werte in einer Zeile ausgeben badaboom PHP Tipps 2010 7 25.04.2010 17:03
order by Problem mit Datum fulltilt PHP Tipps 2010 17 25.03.2010 11:37
PHP: Kompliziertes Problem mit Datum nicobischof PHP-Fortgeschrittene 3 07.01.2008 10:05
Daten aus MYSQL nach Datum filtern Datenbanken 3 19.09.2005 16:09
[Erledigt] Mysql + PHP und Datum Problem Datenbanken 11 31.08.2005 12:08
Problem beim Datum überprüfen...! PHP Tipps 2005 11 25.01.2005 13:39
Datum Problem PHP Tipps 2005 2 15.01.2005 14:34
Problem mit Datum Mutatos PHP-Fortgeschrittene 4 12.10.2004 13:23
mysql - datum - problem Datenbanken 1 22.09.2004 11:47
Problem mit Datum ?! Datenbanken 21 04.08.2004 16:35
Problem mit datum PHP Tipps 2004 8 26.07.2004 09:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:55 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