Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) Newsgroups: de.comp.datenbanken.mysql,de.comp.lang.php Subject: Re: =?UTF-8?Q?Zeitabh=C3=A4ngige?= Gruppierung von =?UTF-8?Q?Datens=C3=A4tzen?= Date: 15 May 2017 21:03:04 GMT Lines: 39 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net GsdXyX7v8OGezixtDQ+8bwQH7ZDw2vU4nfc3T+yGJAdDx7BW4= X-Orig-Path: not-for-mail Cancel-Lock: sha1:A0xUUNMn24spBYZ4wvvGBSRO2Q0= X-Blattlinie: dieser Artikel repraesentiert meine persoenliche Meinung X-Medieninhaber: Stefan Froehlich X-Verleger: Stefan Froehlich X-Verlagsort: Wien User-Agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (Linux/3.16.0-4-amd64 (x86_64)) Xref: csiph.com de.comp.datenbanken.mysql:5087 de.comp.lang.php:4106 In de.comp.lang.php Sebastian Suchanek wrote: > ------------------------------------- 8< ------------------------------ > SET @tour_id=0; > SELECT @ts:=min(ende_zeit) FROM Fahrten; > CREATE TEMPORARY TABLE IF NOT EXISTS tours AS (SELECT MIN(start) AS > `start`, MAX(ende) AS `ende`, SUM(weg) AS `weg` FROM (SELECT > @tour_id:=IF(@ts + INTERVAL 30 MINUTE > start_zeit, @tour_id, > @tour_id+1) AS `tour_id`, start_zeit AS `start`, @ts:=ende_zeit AS > `ende`, ende_km-start_km AS `weg` FROM Fahrten ORDER BY start_zeit) AS > temp1 GROUP BY tour_id); > SELECT * FROM tours; > ------------------------------------- 8< ------------------------------ > > Wenn ich diese Statements z.B. unter PHPmyAdmin in die "SQL"-Eingabe > einkippe, erhalte ich das gewünschte Ergebnis. > Wenn ich sie stattdessen in meinem eigenen Skript mittels mysqli::query > ausführen will, erhalte stattdessen aber eine Fehlermeldung: > "You have an error in your SQL syntax; check the manual that corresponds > to your MySQL server version for the right syntax to use near 'SELECT > @ts:=min(ende_zeit) FROM Fahrten; CREATE TEMPORARY TABLE IF NOT EXISTS > to' at line 1" > Wahrscheinlich hängt's nur an einer Kleinigkeit, [...] "Kleinigkeit" ist relativ, aber es ist einfach zu beheben. Vereinfacht gesagt liegt das Problem beim Strichpunkt (deshalb auch "near SELECT @ts""), Du brauchst einen eigenen Befehl, um mehrere Statements in einem query-Statement ausführen zu können: Servus, Stefan -- http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich Offizieller Erstbesucher(TM) von mmeike Endlich ein imaginärer Gedanke: Stefan! (Sloganizer)