У меня есть таблица с именем PurchaseOrderDetail.
TABLE PurchaseOrderDetail
PurchaseOrderDetail int,
Comments nvarchar(500)
В поле «Комментарии» каждого элемента у меня есть отдельный список «;», в котором хранятся Название контракта, Номер контракта, Название лицензии, Версия лицензии.
т.е.
PurchaseOrderDetail Comments
1 'Microsoft Office Standard 2007;12%;;'
2 'Microsoft Visio 2007;9%;;'
У меня также есть функция Split, которая принимает разделитель и строку и возвращает таблицу,
Так называю это
выберите * из Разделить (';', 'Microsoft Office Standard 2007; 12% ;;')
возвращает это
pn s [ column names]
1 Microsoft Office Standard 2007
2 12%
Мне нужно выделить эту информацию для каждого PurchaseOrderDetail и показать их в отчете
Так что-то вроде этого
select PurchaseOrderDetailID, cn.s as ContractName, cno.s as ContractNo
from dbo.PurchaseOrderDetail as pod
join dbo.Split(';', pod.Comments) as cn on cn.pn = 1
join dbo.Split(';', pod.Comments) as cno on cno.pn = 2
хотя это не работает, но я надеюсь, что это предполагает намерение.
Мне бы хотелось, чтобы мои результаты были:
PurchaseOrderDetailID ContractName ContractNo
1 Microsoft Office Standard 2007 12%
Возможно ли это, или я занимаюсь этим неправильно