Problem mit Datenbank ausgabe. Dringen Hilfe benotigt

  • Themenstarter Themenstarter sinusalpha3
  • Beginndatum Beginndatum
das Datum sollte in '' gesetzte werden
SQL:
( SELECT
@d1 := '2010-12-16',

Nachtrag:
Nimm mal all die @id aus der obersten SQL-Stufe raus. Ist heikel im Subquery die Variablen zu setzen und sie im Top-Query wieder zu verwenden.
 
Zuletzt bearbeitet von einem Moderator:
habe falschen code gepostet.

das ist der richtige
Code:
SELECT 
    id,
	vorname,
	nachname,
	
    @d1 AS datum1,
    MAX(IF(datum = @d1, FS, NULL)) AS FS1,
    MAX(IF(datum = @d1, SS, NULL)) AS SS1,
    MAX(IF(datum = @d1, NS, NULL)) AS NS1,
    @d2 AS datum2,
    MAX(IF(datum = @d2, FS, NULL)) AS FS2,
    MAX(IF(datum = @d2, SS, NULL)) AS SS2,
    MAX(IF(datum = @d2, NS, NULL)) AS NS2,  
    @d3 AS datum3,
    MAX(IF(datum = @d3, FS, NULL)) AS FS3,
    MAX(IF(datum = @d3, SS, NULL)) AS SS3,
    MAX(IF(datum = @d3, NS, NULL)) AS NS3,
    @d4 AS datum4,
    MAX(IF(datum = @d4, FS, NULL)) AS FS4,
    MAX(IF(datum = @d4, SS, NULL)) AS SS4,
    MAX(IF(datum = @d4, NS, NULL)) AS NS4,
    @d5 AS datum5,
    MAX(IF(datum = @d5, FS, NULL)) AS FS5,
    MAX(IF(datum = @d5, SS, NULL)) AS SS5,
    MAX(IF(datum = @d5, NS, NULL)) AS NS5,
    @d6 AS datum6,
    MAX(IF(datum = @d6, FS, NULL)) AS FS6,
    MAX(IF(datum = @d6, SS, NULL)) AS SS6,
    MAX(IF(datum = @d6, NS, NULL)) AS NS6,
    @d7 AS datum7,
    MAX(IF(datum = @d7, FS, NULL)) AS FS7,
    MAX(IF(datum = @d7, SS, NULL)) AS SS7,
    MAX(IF(datum = @d7, NS, NULL)) AS NS7,
    @d7 AS datum8,
    MAX(IF(datum = @d8, FS, NULL)) AS FS8,
    MAX(IF(datum = @d8, SS, NULL)) AS SS8,
    MAX(IF(datum = @d8, NS, NULL)) AS NS8
FROM
    (   SELECT
            @d1 := '2010-12-16',
            @d2 := DATE_ADD(@d1, INTERVAL 1 DAY),
            @d3 := DATE_ADD(@d1, INTERVAL 2 DAY),
            @d4 := DATE_ADD(@d1, INTERVAL 3 DAY),
            @d5 := DATE_ADD(@d1, INTERVAL 4 DAY),
            @d6 := DATE_ADD(@d1, INTERVAL 5 DAY),
            @d7 := DATE_ADD(@d1, INTERVAL 6 DAY),
			@d8 := DATE_ADD(@d1, INTERVAL 7 DAY)
    ) AS vars,
    (
        SELECT 
			id,
			vorname,
			nachname,
		    datum, 
		    schicht, 
            if( (schicht like '%1.%' or schicht='egal'),'X','') as FS , 
            if( (schicht like '%2.%' or schicht='egal'),'X','') as SS, 
            if( (schicht like '%3.%' or schicht='egal'),'X','') as NS 
        FROM 
            eingabe 
        WHERE 
            datum BETWEEN @d1 AND @d8
    ) AS d
GROUP BY nachname

es funktioniert einfach nicht.

mysql server version: 3.23.58
 
Zuletzt bearbeitet von einem Moderator:
Fehler Meldung von mysql.

You have an error in your SQL syntax near 'SELECT @d1 := '2010-12-16' , @d2 := DATE_ADD( @d1 , INTERVAL 1 DAY ) , @d3 :=' at line 1
 
Nachtrag:
Nimm mal all die @id aus der obersten SQL-Stufe raus. Ist heikel im Subquery die Variablen zu setzen und sie im Top-Query wieder zu verwenden.
Nim mal diese Zeilen raus
@d1 AS datum1,
@d2 AS datum2,
etc.


PS: [code=sql]...[/code]-Tags machen SQL lesbarer....
 
Zuletzt bearbeitet von einem Moderator:
Mal ne blöde Frage, die nur am Rande mit dem Thema zu tun hat: Warum hat der neue Server PHP4, wenn der alte schon PHP5 hatte? Meines erachtens gilt
alt < neu
4 < 5
und dementsprechend wäre
alt ^= 4
neu ^= 5
für mich logisch...

Also wenn's keinen dringenden Grund gibt, auf dem neuen Server PHP4 laufen zu lassen, dann solltet ihr den mal aktualisieren! Und wie siehts mit der mySQL-Version aus? Liegt ja eher an der mySQL-Version, dass der Query nicht mehr funktioniert...

Bei den SQL-Fehlern kann dir nur Yaslaw weiterhelfen, er ist der einzige, der so krasses Zeug versteht :-D

Grüße,
Frezl
 
You have an error in your SQL syntax near 'SELECT @d1 := '2010-12-16' , @d2 := DATE_ADD( @d1 , INTERVAL 1 DAY ) , @d3 :=' at line 1

fehler



ja ich weiß wegen alt neu. muss aber damit arbeiten

bin sehr froh das er verscuht mir zu helfen. danke an dieser stelle nochmal
 
Hab die Tabelle noch von früher in meiner Test-DB.
Das von dir gepostete SQL funktioniert mit MySQL 5.0.51

Scheintt wirklich so zu sein, dass es mit MySQL <5.0.51 nicht geht. Aber da habe ich weder viel Erfahrung noch eine Testumgebung
 
die mysql version3.23 kann keine unterabfragen verarbeiten.

nun die frage. wie mache ich es das er trotzdem die abfrage macht in mysql mit dem gleichen resultat?

kannst du mir da helfen?
 
Hallo!

mysql server version: 3.23.58
Abgesehen davon dass die Version alles andere als zeitgemäss ist.....
Ihr habt an eurem Server allen ernstes seit über 7 Jahren keine Sicherheitslücken mehr geschlossen?!
Das kann und will ich nicht glauben.
Hier besteht dringender Handlungsbedarf das Sytem mal auf einen zumindest halbwegs aktuellen Stand zu bringen.

Gruss Dr Dau
 
Nein, viel schlimmer: Die ham auf ihren neuen Server die alte Version draufgepackt!
auf dem alten server funktioniert es. Da ist es php5 neuer server php4.
Jedenfalls was die PHP-Versionen betrifft. Aber dann wirds mit mySQL genauso gelaufen sein :-(

Grob fahrlässig!
 
Zurück