Я хочу объединить все коды заданий, связанные с VhStock.No, в одну строку. Любой столбец WkRoDesc.Job_Code END AS WorkNeeded, в котором есть все коды заданий, кроме четырех перечисленных ниже, разделенных символом ' , ', Затем таким же образом объедините эти четыре кода заданий в другом столбце.
SELECT
--other things selected here
vhstock.No AS [Tag #],
WkInvReg.Ro_Number
CASE WHEN WkRoDesc.Job_Code = 'Outside AOR'
OR WkRoDesc.Job_Code = 'AOR Del'
OR WkRoDesc.Job_Code = 'AOR L & G'
OR WkRoDesc.Job_Code = '/Cust PU/D'
THEN NULL ELSE WkRoDesc.Job_Code END AS WorkNeeded,
CASE WHEN WkRoDesc.Job_Code = 'Outside AOR'
OR WkRoDesc.Job_Code = 'AOR Del'
OR WkRoDesc.Job_Code = 'AOR L & G'
OR WkRoDesc.Job_Code = '/Cust PU/D'
THEN WkRoDesc.Job_Code ELSE NULL END AS DPO
FROM vhstock, WkInvReg, WkRoDesc
WHERE vhstock.no = WkInvReg.Stock_No AND WkInvReg.Ro_Number = WkRoDesc.Ro_Number
Я использую SQL Server 08 R2 с подключением ODBC для запроса из базы данных SQL Anywhere v.11. Я использую Foresight Intelligence в качестве интерфейса для выполнения запроса. У меня нет прямого доступа ни к одной из баз данных, поскольку ими управляют поставщики программного обеспечения.
Как я могу это сделать? Пробовали это, но получили сообщение об ошибке без объяснения причин
stuff((
select ',' + WkRoDesc.Job_Code + ', '
from WkRoDesc
where WkRoDesc.Ro_Number = WkInvReg.Ro_Number
and NOT (WkRoDesc.Job_Code = 'Outside AOR' OR WkRoDesc.Job_Code = 'AOR Del' OR WkRoDesc.Job_Code = 'AOR L & G' OR WkRoDesc.Job_Code = '/Cust PU/D')
FOR xml path('')
), 1, 1, '') AS WorkNeeded,
stuff((
select ',' + WkRoDesc.Job_Code + ', '
from WkRoDesc
where WkRoDesc.Ro_Number = WkInvReg.Ro_Number
and (WkRoDesc.Job_Code = 'Outside AOR' OR WkRoDesc.Job_Code = 'AOR Del' OR WkRoDesc.Job_Code = 'AOR L & G' OR WkRoDesc.Job_Code = '/Cust PU/D')
FOR xml path('')
), 1, 1, '') AS DPO
Stuff
сPath Xml for
- person Nilesh   schedule 16.09.2013