как правильно поставить GROUP BY?

0

Как правильно использовать группировку в этом запросе:

$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
concatenation

1 ответ

0
Лучший ответ

Вам нужно 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), чтобы убедиться, что часть в порядке.

  • 0
    Какова функция пространства на Конкат? у вас есть сайт учебника для concat? Я хочу узнать больше.
  • 0
    Ключевым моментом в отношении пробелов является обеспечение того, чтобы у вас не было A.NIK=B.NIKWHERE B.EmpID = 13GROUP BY id, ... B.NameORDER BY DateLIMIT 10 - где ключевые слова выполняются в предыдущем маркере, приводя к синтаксическим ошибкам. У меня нет конкретной онлайн-ссылки, чтобы указать вам - извините.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню