Hallo Forum,
ich habe folgende Tabelle:
CREATE TABLE `tabelle` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`typ` int(1) NOT NULL,
`pfadname` varchar(150) NOT NULL,
`quota` varchar(6) NOT NULL,
`datum` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Index` (`typ`,`pfadname`,`quota`,`datum`)
) ENGINE=InnoDB AUTO_INCREMENT=391079 DEFAULT CHARSET=utf8;
Beispieldaten
INSERT INTO `tabelle` VALUES
(390217,1,'USERNAME','0,6','2017-03-06 13:24:39'),
(345847,1,'USERNAME','0,5','2017-03-01 11:57:50'),
(345853,6,'USERNAME\\Eigene Dateien','0,0','2017-03-01 11:57:50'),
(390223,6,'USERNAME\\Eigene Dateien','0,0','2017-03-06 13:24:39'),
(345869,7,'USERNAME\\Eigene Dateien\\Downloads','0,0','2017-03-01 11:57:50'),
(345870,7,'USERNAME\\Eigene Dateien\\Test','0,0','2017-03-06 13:24:39');
Meine Abfrage
SELECT
typ, pfadname,
SUM(IF(datum = '2017-03-06 13:24:39',1,0)) AS datum1,
SUM(IF(datum = '2017-03-01 11:57:50',1,0)) AS datum2,
IF(datum = '2017-03-06 13:24:39',quota,0) AS quota1,
IF(datum = '2017-03-01 11:57:50',quota,0) as quota2
FROM
tabelle
WHERE
(datum = '2017-03-06 13:24:39' OR datum = '2017-03-01 11:57:50')
AND (typ = 1 OR typ = 6 OR typ = 7)
AND pfadname LIKE 'USERNAME%'
GROUP BY pfadname
ORDER BY pfadname
Ziel
Damit erhalte ich eine Übersicht je Pfadname und je Datum mit der Info, ob ein Pfad existierte.
Zusätzlich benötige ich aber von der Abfrage noch die Werte der Spalte quota je Datum.
Hier erhalte ich natürlich nur einen der beiden Werte durch meine Gruppierung am Ende. Ich benötige aber beide Quota-Werte damit ich einen davon später mit PHP anzeigen kann (den Wert vom aktuelleren Datum) und den zweiten Wert (vom älteren Datum) um damit rechnen zu können und die Änderung zum 1. Wert anzeigen kann.
Vielen Dank.
ich habe folgende Tabelle:
CREATE TABLE `tabelle` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`typ` int(1) NOT NULL,
`pfadname` varchar(150) NOT NULL,
`quota` varchar(6) NOT NULL,
`datum` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Index` (`typ`,`pfadname`,`quota`,`datum`)
) ENGINE=InnoDB AUTO_INCREMENT=391079 DEFAULT CHARSET=utf8;
Beispieldaten
INSERT INTO `tabelle` VALUES
(390217,1,'USERNAME','0,6','2017-03-06 13:24:39'),
(345847,1,'USERNAME','0,5','2017-03-01 11:57:50'),
(345853,6,'USERNAME\\Eigene Dateien','0,0','2017-03-01 11:57:50'),
(390223,6,'USERNAME\\Eigene Dateien','0,0','2017-03-06 13:24:39'),
(345869,7,'USERNAME\\Eigene Dateien\\Downloads','0,0','2017-03-01 11:57:50'),
(345870,7,'USERNAME\\Eigene Dateien\\Test','0,0','2017-03-06 13:24:39');
Meine Abfrage
SELECT
typ, pfadname,
SUM(IF(datum = '2017-03-06 13:24:39',1,0)) AS datum1,
SUM(IF(datum = '2017-03-01 11:57:50',1,0)) AS datum2,
IF(datum = '2017-03-06 13:24:39',quota,0) AS quota1,
IF(datum = '2017-03-01 11:57:50',quota,0) as quota2
FROM
tabelle
WHERE
(datum = '2017-03-06 13:24:39' OR datum = '2017-03-01 11:57:50')
AND (typ = 1 OR typ = 6 OR typ = 7)
AND pfadname LIKE 'USERNAME%'
GROUP BY pfadname
ORDER BY pfadname
Ziel
Damit erhalte ich eine Übersicht je Pfadname und je Datum mit der Info, ob ein Pfad existierte.
Zusätzlich benötige ich aber von der Abfrage noch die Werte der Spalte quota je Datum.
Hier erhalte ich natürlich nur einen der beiden Werte durch meine Gruppierung am Ende. Ich benötige aber beide Quota-Werte damit ich einen davon später mit PHP anzeigen kann (den Wert vom aktuelleren Datum) und den zweiten Wert (vom älteren Datum) um damit rechnen zu können und die Änderung zum 1. Wert anzeigen kann.
Vielen Dank.