php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.08.2011, 11:32  
Neuer Benutzer
 
Registriert seit: 04.08.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Napali befindet sich auf einem aufstrebenden Ast
Standard

So ich habs nun irgendwie hinbekommen, jedenfalls liefert mir die reine SQL-Abfrage genau die Tabelle, die ich oben schon beschrieben habe (diesmal mit Sortierungsmöglichkeit )

Auf jedenfall vielen Dank an ]jolly[. So einen Denkanstoß habe ich gebraucht

Wen es interessiert, hier mal die (etwas lange) Abfrage:
Code:
SELECT member.Name, tabmindate.Date, tabmindate.Level, tabmindate.Points, tabmaxdate.Date,
 tabmaxdate.Level, tabmaxdate.Points, (tabmaxdate.Level - tabmindate.Level) AS DiffLevel,
 (tabmaxdate.Points - tabmindate.Points) AS DiffPoints
FROM member
JOIN (
	/* Punkte bei MIN(Date) je Member  */
	/* GuildID zur Auswahlbeschränkung */
	(
	SELECT member.MemberID, member.GuildID, table1.Date, table1.Level, table1.Points
	FROM member
	JOIN (
		SELECT h.MemberID, h.Date, h.Level, h.Points
		FROM member_points h, (
			SELECT member_points.MemberID, MIN(Date) AS max_date, Level, Points
			FROM member_points
		GROUP BY member_points.MemberID
	) AS mpu
	WHERE h.MemberID = mpu.MemberID AND h.Date = mpu.max_date
	ORDER BY MemberID ASC
	) AS table1 ON member.MemberID=table1.MemberID
	WHERE GuildID=1
	ORDER BY member.MemberID
	) AS tabmindate
	JOIN
		/* Punkte bei MAX(Date) je Member  */
		/* GuildID zur Auswahlbeschränkung */
		(
		SELECT member.MemberID, member.GuildID, table1.Date, table1.Level, table1.Points
		FROM member
		JOIN (
			SELECT h.MemberID, h.Date, h.Level, h.Points
			FROM member_points h, (
				SELECT member_points.MemberID, MAX(Date) AS max_date, Level, Points
				FROM member_points
				GROUP BY member_points.MemberID
			) AS mpu
			WHERE h.MemberID = mpu.MemberID AND h.Date = mpu.max_date
			ORDER BY MemberID ASC
		) as table1 ON member.MemberID=table1.MemberID
	) AS tabmaxdate ON tabmindate.MemberID=tabmaxdate.MemberID
) ON member.MemberID=tabmindate.MemberID
WHERE member.GuildID=1
ORDER BY tabmaxdate.Level DESC, tabmaxdate.Points DESC
Edit:
Ok, es hat sich ein neues Problem ergeben.
Ich möchte es so haben, dass sich das tabmindate.Date maximal um 7 Tage vom tabmaxdate.Date unterscheidet.
Also wenn tabmaxdate.Date = 2011-08-08 ist , dann soll tabmindate.Date mindestens 2011-08-02 sein, auch wenn noch frühere Daten in der Datenbank sind.
Das müsste man ja irgendwie mit einer Bedingung innerhalb der Abfrage lösen. Hat jemand da einen Vorschlag, wie man sowas bewerkstelligen kann?

Geändert von Napali (05.08.2011 um 13:45 Uhr).
Napali ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.08.2011, 14:11  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Datums- und Zeitfunktionen in MySql: http://dev.mysql.com/doc/refman/5.1/...functions.html
auch nützlich: http://dev.mysql.com/doc/refman/5.1/...#ix01_index0_I

Dein SQL-Statement sieht beängstigend aus. Ist das noch die Aufgabenstellung aus Deinem Eröffnungspost?

Geändert von achtelpetit (05.08.2011 um 14:14 Uhr).
achtelpetit ist gerade online   Mit Zitat antworten
Alt 05.08.2011, 15:15  
Neuer Benutzer
 
Registriert seit: 04.08.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Napali befindet sich auf einem aufstrebenden Ast
Standard

Ganz genau.
Ob es nun wirklich das ist, was ich im ersten Post angefragt habe weiß ich nicht, aber auf jedenfall macht sie das, was ich angefragt habe.
Naja fast, dank dem Datumskram wird sie wohl noch länger...

Ich muss da wahrscheinlich irgendwie die komplette Tabelle, von der ich das Min(Date) beziehe irgendwie in ein IF mit DATEDIFF packen.
Napali 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
Mysql funktioniert nicht (Erweiterung nicht erkannt!?) pfump Server, Hosting und Workstations 10 17.03.2012 11:07
[Erledigt] Datensätze von einer MySQL in eine andere MySQL Datenbank abgleichen Marvin75 Datenbanken 7 10.06.2011 18:00
Mysql Server startet nicht mehr Nicolas2006 Datenbanken 2 20.03.2011 16:03
PHP Zugriff auf MySQL Community Server gewähren daemonTutorials Datenbanken 8 21.02.2011 12:28
MySQL Datentransfer (Dateigroesse 4MB) via Shell Zugang oder einfacher promoterlv Datenbanken 1 14.11.2010 22:12
[Erledigt] PHP bekommt keine Verbindung zu MySQL SaKe Datenbanken 15 20.09.2010 14:45
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
MySQL & PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php tabellensortierung

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