Ich entwickle eine WebApp und ich sende Filter zu meiner Datenbank im Backend. Ich benutze mySql als Datenbank. Und was würde Ich mag es, erreichen:Zählen in Unterabfrage SELECT-Anweisung mit WHERE und GroupBy
Zählen wie viele Nachrichten, bei denen gesendet (count (mailid) aus Tabelle)
Graf, wie viel der gesendeten Nachricht einen Status empfing (Status wird aus der Tabelle NOT NULL). Ich weiß nicht, wie diese
zu erreichen, um die GROUP BY im Sinne zum Beispiel sein kann
SELECT formName
, language
, COUNT(mailid) AS totalsent
, .... as totalfeedback
FROM mytable
WHERE formName in ('Z_4')
AND language in ('F','N')
AND sendingdate BETWEEN '2017-04-01' AND '2017-04-30'
AND returndate BETWEEN '2017-04-01' AND '2017-04-30'
GROUP
BY formName
, language
Ergebnis unter:
formname language totalSent FeedBackReceived
XXXX_Z984 F 9306 9120
XXXX_Z984 N 11337 10500
Das ist mein Tisch ist:
CREATE TABLE `mytable` (
`id` int(25) NOT NULL AUTO_INCREMENT,
`formName` varchar(100) DEFAULT NULL,
`mode` varchar(30) DEFAULT NULL,
`language` varchar(30) DEFAULT NULL,
`sendingDate` date DEFAULT NULL,
`telnumber` varchar(30) DEFAULT NULL,
`segment` varchar(30) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`mailId` varchar(45) DEFAULT NULL,
`returnDate` date DEFAULT NULL,
`returnTime` varchar(45) DEFAULT NULL,
`url` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `mailid_idx` (`mailId`) USING HASH,
KEY `formname_idx` (`formName`),
KEY `type_idx` (`mode`),
KEY `language_idx` (`language`),
KEY `email_idx` (`email`),
KEY `status_idx` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=820396 DEFAULT CHARSET=latin1;