Я наблюдал подобный вопрос T SQL Conditional String Concatenation, но stil не может понять, как это сделать. Я даже не могу понять, с чего начать.Условная конкатенация T-SQL
Мой запрос до сих пор выглядит следующим образом:
SELECT
R.ReservationsID 'Job No',
C.[Trading Name]'Customer Name',
C.[Business Address1] 'Customer Address1',
C.[Business Address2]'Customer Address2',
C.[Business Town]'Customer Town',
C.[Business Postal Code]'Customer Postcode',
C.CustomerID' Customer ID',
I.InvoiceID' InvoiceID' ,
'address' AS [Supplier Address 1], --CHANGE
'address' AS [Supplier Address 2], --CHANGE
'town' AS [town], --CHANGE
'post code' AS [Post Code], --CHANGE
'Supplier' AS [Supplier], --CHANGE
R.Quantity 'Purchase QTY',
SM.Instock 'QTY In Stock',
SM.StockCode 'Product Code',
SM.StockDescription 'Sale Unit',
R.[Delivery Date],
V.[Registration]'Vehicle Reg',
I.[NET] 'Sale Price',
I.[GROSS] 'Total Sale Price',
R.[Delivery Date] ' Del Date',
R.Quantity as qty, --CHANGE
SM.StockDescription AS [Purchase Unit], --CHANGE
0.0 AS [Purchase total price], --CHANGE
0.0 AS [PO No],
(D.Forename + ' ' + D.Surname) AS [Driver Name],
(convert(varchar(10),dateadd(MM,-7,GETDATE()),103)) AS 'Date -7 Months',
0.0 AS [Purchase Invoice],
0.0 AS [Purchase Price],
RI.StockID
FROM
dbo.tblReservation R
LEFT JOIN tblReservationItems RI
ON RI.ReservationsID = R.ReservationsID
AND (RI.Deleted != 1) AND (R.Completed !=0)
LEFT JOIN tblInvoice I ON I.InvoiceID = R.Invoice AND (I.Deleted != 1)
LEFT JOIN tblCustomer C ON C.CustomerID = R.CustomerID
LEFT JOIN tblStockMaster SM ON SM.StockID = RI.StockID
LEFT JOIN dbo.tblvehicle V ON v.VehicleID = R.VehicleID
LEFT JOIN dbo.tblDriver D ON D.DriverID = R.DriverID
WHERE (I.Deleted = 0)
AND (r.completed=1)
AND [Delivery Date] >= DATEADD(month, -7, GETDATE())
AND [Delivery Date] IS NOT NULL
Отчет основан на R.ReservationsID 'Job No'
Однако может быть несколько «Продажа Units» и «Приобретение единиц» для каждого «работы нет», так что я являюсь пытаясь сделать, это объединить различные «единицы покупки» и «единицы продажи» в один отдельный столбец, разделенный запятыми, для согласования с «номером задания».
Чтобы смутить это еще больше, я хотел бы также объединить QTY единиц закупки & Продажа единицы в колонку, чтобы она выглядела примерно так.
Желаемая Выход:
New_Concat_Column
[QTY] + 'x' + [SALE UNIT] + ","[QTY] + 'x' + [SALE UNIT] + ","
Любые указатели о том, как идти об этом было бы весьма признателен. Было бы хорошо сделать это в чистом SQL, но любые методы в Crystal Reports также приветствуются.
Спасибо, это только ответы на небольшую часть вопроса. [Отдел продаж] и [Блок покупок] вытягиваются из разных таблиц. Я создаю представление и пытаюсь выполнить их, как описано выше, с разделением запятой. – Eric213
@AlecHenderson - Я обновил ответ, чтобы использовать имена столбцов с псевдонимом. Мне непонятно, спрашиваете ли вы о ссылках на новые имена столбцов, например. 'Qty', или создавая список произвольной длины с запятой, используя данные из нескольких строк. Или что-то еще. – HABO