Как правильно использовать группировку в этом запросе:
$sQuery = "SELECT id,DATE(A.Inspection_datetime) AS Date,
A.Model, COUNT(A.Serial_number) AS Qty,
B.name
FROM inspection_report AS A
LEFT JOIN Employee AS B
ON A.NIK=B.NIK
GROUP BY Date, B.name".$sWhere.$sOrder.$sLimit;
Я действительно новичок в конкатенации.
Вам нужно GROUP BY как "id", так и "A.Model", по крайней мере, в большинстве СУБД SQL (у MySQL есть правила laxer в этой области). Вам нужно, чтобы GROUP BY приходила после предложения WHERE и перед предложением ORDER BY. Следовательно:
$sGroupBy = " GROUP BY id, Date, A.Model, B.Name ";
$sQuery = "SELECT id,DATE(A.Inspection_datetime) AS Date,
A.Model, COUNT(A.Serial_number) AS Qty,
B.name
FROM inspection_report AS A
LEFT JOIN Employee AS B
ON A.NIK=B.NIK " .
$sWhere.$sGroupBy.$sOrder.$sLimit;
Обратите внимание, что вы должны убедиться, что есть пробелы для разделения различных предложений, которые вы объединяете вместе; Я добавил пространство на каждом конце $sGroupBy
(и после B.NIK
), чтобы убедиться, что часть в порядке.
A.NIK=B.NIKWHERE B.EmpID = 13GROUP BY id, ... B.NameORDER BY DateLIMIT 10
- где ключевые слова выполняются в предыдущем маркере, приводя к синтаксическим ошибкам. У меня нет конкретной онлайн-ссылки, чтобы указать вам - извините.