У меня есть хранимая процедура, которая объединяет номера отслеживания из нескольких записей в один.Сохраненная процедура, которая объединяет числа
Эта хранимая процедура ниже работает тонкие
ALTER PROCEDURE [dbo].[Proc1]
@HWOrderID NVARCHAR(20)
AS
DECLARE @concatn NVARCHAR(MAX)
SELECT
@concatn = COALESCE(@concatn + ' ','') +
COALESCE(IT.TrackingNum + ', ','')
FROM
HWEvent as hwe
INNER JOIN
HWOrderID AS hwo ON hwo.HWEventpk = hwe.HWEventpk
LEFT OUTER JOIN
InventoryTransaction IT ON hwo.HWEventpk = IT.HWEventpk
WHERE
hwo.HWOrderID = 21000
AND IT.FromPartypk = '13EF4AF5-0957-465C-BE20-C057EC970B5B'
SELECT
@concatn AS 'FromSMHS'
SET @concatn = null
Мои результаты:
FromSMHS
5560, 5561, 5562, 5563, 5564, 5565
... Но теперь мне нужно, чтобы добавить дополнительные номера для отслеживания из второй таблицы. Когда я присоединяюсь к дополнительным таблицам, я получаю повторяющиеся номера отслеживания.
ALTER PROCEDURE [dbo].[Proc2]
@HWOrderID NVARCHAR(20)
AS
DECLARE @concatn NVARCHAR(MAX)
SELECT
@concatn = COALESCE(@concatn + ' ','') +
COALESCE(IT.TrackingNum + ', ','') +
COALESCE(fexd.TrackingNumber + ', ','')
FROM
HWEvent as hwe
INNER JOIN
HWOrderID AS hwo ON hwo.HWEventpk = hwe.HWEventpk
LEFT OUTER JOIN
InventoryTransaction IT ON hwo.HWEventpk = IT.HWEventpk
LEFT OUTER JOIN
FedexTrackingReference fexr ON hwe.HWEventID = fexr.HWEventID
LEFT OUTER JOIN
FedExTrackingDetail fexd ON fexr.FedexTrackingDetailpk = fexd.FedExTrackingDetailpk
WHERE
hwo.HWOrderID = 21000
AND IT.FromPartypk = '13EF4AF5-0957-465C-BE20-C057EC970B5B'
SELECT @concatn AS 'FromSMHS'
SET @concatn = null
Мои результаты:
FromSMHS
5560, 5561 5560, 8500,5560, 8501, 5560, 8502, 5562, 5561 5562, 8500,5562, 8501, 5562, 8502, 5563, 5561 5563, 8500,5563, 8501, 5563, 8502, 5564, 5561 5564, 8503, 8501, 5564, 8502, 5564, 5561 5564, 8503, 8501, 5564, 8502, 5565, 5561 5565, 8500,5565, 8501, 5565, 8502
Мой желаемый результат должен как это:
FromSMHS
5560, 5561, 5562, 5563, 5564, 5565, 8500, 8501, 8502,8503
Вы можете просто поместить значения во временную таблицу первого и сделать отличный – Donal
Это не функция - это хранимая процедура .... –