Мне нужно выполнить запрос ниже в JQuery Datatable Editor, но синтаксис полностью отличается при использовании Jquery Datatable Editor.Примечание: я удивлен, что нет онлайн-конвертера, поскольку Jquery Datatable очень популярен.
Я хотел использовать вместо этого представление, но не могу использовать подзапрос в представлении.Кто-нибудь может помочь?
SELECT
t1.techid,
t1.techname,
t1.manager,
t1.dispatcher,
t1.cellphone,
t2.SC_SCTechID,
t2.BCARNA,
t2.SC_CallStatus,
t2.Serial_ID,
t2.Age,
t2.SC_CallComment,
t2.SC_CallTimestamp,
COALESCE(t3.num_tickets, 0) AS num_tickets
FROM serviceteam t1
LEFT JOIN ato_openservicecalls t2
ON t1.techid = t2.SC_SCTechID AND t2.SC_CallStatus = 'Dispatch'
LEFT JOIN
(
SELECT t1.techid, COUNT(t2.Serial_ID) AS num_tickets
FROM serviceteam t1
LEFT JOIN ato_openservicecalls t2
ON t1.techid = t2.SC_SCTechID
WHERE t2.SC_CallStatus = 'Dispatch'
GROUP BY
t1.techid
) t3
ON t1.techid = t3.techid
Данные:
CREATE TABLE `serviceteam` (
`id` int,
`techid` varchar(50),
`techname` varchar(50),
`manager` varchar(50),
`dispatcher` varchar(50),
`cellphone` varchar(50)
);
CREATE TABLE `ato_openservicecalls` (
`id` int,
`SC_SCTechID` varchar(50),
`SC_CallStatus` varchar(50),
`BCARNA` varchar(50),
`Age` varchar(50),
`SC_CallTimestamp` varchar(50),
`Serial_ID` varchar(50),
`SC_CallComment` varchar(50)
);
insert into `serviceteam` VALUES (1, 'tech1', 'name1', 'manager1', 'dispatcher1', 'cellphone1');
insert into `serviceteam` VALUES (2, 'tech2', 'name2', 'manager2', 'dispatcher2', 'cellphone2');
insert into `serviceteam` VALUES (3, 'tech3', 'name3', 'manager3', 'dispatcher3', 'cellphone3');
insert into `ato_openservicecalls` VALUES (1, 'tech1', 'Dispatch', 'customer1', 'age1', 'timestamp1', 'serial1', 'comment1');
insert into `ato_openservicecalls` VALUES (2, 'tech2', 'Dispatch', 'customer2', 'age2', 'timestamp2', 'serial2', 'comment2');
insert into `ato_openservicecalls` VALUES (3, 'tech3', 'callstatus3', 'customer3', 'age3', 'timestamp3', 'serial3', 'comment3');
Моя попытка в редакторе данных Jquery:
Editor::inst( $db, 'serviceteam')
->fields(
Field::inst( 'serviceteam.techid' )->validator( 'Validate::notEmpty' ),
Field::inst( 'serviceteam.techname' )->validator( 'Validate::notEmpty' ),
Field::inst( 'serviceteam.manager' )->validator( 'Validate::notEmpty' ),
Field::inst( 'serviceteam.dispatcher' )->validator( 'Validate::notEmpty' ),
Field::inst( 'serviceteam.cellphone' )->validator( 'Validate::notEmpty' ),
Field::inst( 'serviceteam.serviceteamstatus' )->validator( 'Validate::notEmpty' ),
Field::inst('ato_openservicecalls.SC_SCTechID')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.SC_CallStatus')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.BCARNA')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.Age')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.SC_CallTimestamp')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.Serial_ID')->validator("Validate::notEmpty"),
Field::inst('ato_openservicecalls.SC_CallComment')->validator("Validate::notEmpty")
)
->leftJoin('ato_openservicecalls', 'ato_openservicecalls.SC_SCTechID', '=', 'serviceteam.techid AND (ato_openservicecalls.SC_CallStatus = "Dispatch")')
->process( $_POST )
->json();
Этот запрос в редакторе данных Jquery возвращает всечто мне нужно, кроме подсчета.Мне нужен столбец, который показывает общее количество записей, где SC_CallStatus = Dispatch для каждого TechID.