Я просто пытаюсь объединить имена сотрудников в одно поле, когда значение параметра WorkOrderNumber одинаково.Не могу понять, почему этот запрос не работает должным образом
$Data = "SELECT tt.WorkOrderNumber AS WN,
SUBSTRING(SELECT tt2.AssignedEmp
FROM TestTable AS tt2
WHERE tt2.WorkOrderNumber=tt.WorkOrderNumber
ORDER BY tt2.AssignedEmp) AS emp
FROM TestTable AS tt";
Всякий раз, когда я запускаю этот запрос я получаю это возвращенное на моем сайте:
Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] At most one record can be returned by this subquery.
Есть ли что-то я не хватает?
Для уточнения ... Я снимаюсь для:
Допустим, у меня есть данные в этой форме
WorkOrderNumber AssignedEmp
2012087-28 Jeff
2012087-28 Bill
2012087-28 John
Я хотел бы запросить эти данные и получить результат, как это .. .
WorkOrderNumber Employee
2012087-28 Jeff,Bill,John
Я не уверен, поддерживает ли MS Access, но SQL Server имеет функцию «FOR XML PATH». Смотрите: http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-server – JodyT
Я пробовал работать с этим, но это давало мне синтаксические ошибки. Возможно, он не поддерживает его – Hoser
Доступ нет. Вы определенно не можете сделать это в Access 2003 или ранее, и я уверен, что вы не можете сделать это в Access вообще (я думал, возможно, многозначные поля помогут, но это не похоже на то, что они будут) без использования VBA. –