У нас есть неуклюжий набор данных, который я хотел бы сделать в виде. Я создал хранимую процедуру, чтобы позаботиться об этом, но я не могу использовать ее из Crystal Reports, как я предполагал.
Ниже приведен пример набора данных.
SalesOrder Item Qty Comment SalesOrderLineNo
12345 4321 1 1
12345 4322 3 2
12345 4312 5 3
12345 4
12345 5
12345 -----Payment Info----- 9
12345 Payment: $100 10
12345 Invoiced: $90 11
12345 Date 10-12-16 12
12345 13
12346 4344 1 1
12346 4376 3 2
12346 4329 5 3
12346 4567 1 4
12346 5
12346 6
12346 Free Freight 7
12346 8
12346 -----Deposit Info----- 9
12346 Deposit: $400 10
12346 Remaining: $190 11
12346 Date 10-10-16 12
12348 4390 1 1
12348 Credit Card on File 2
12348 Call Bill on Delivery 3
12348 ----Shipping Notes---- 4
12348 Address 5
12348 14356 21st ST 6
12348 City, State Zip 7
То, что я хочу сделать, это написать запрос, в котором будет найден SalesOrderLineNo
текст, который содержит текст «----- Депозитная информация -----» или «----- Информация об оплате -----» и назначить это значение. Данные, которые мне нужно скрыть, будут начинаться с SalesOrderLineNo
конца и заканчивая на SalesOrderLineNo + 3
, то есть всегда будет 4 Comment
строки, которые нужно будет скрывать. Это никогда не должно меняться.
Вот проком, который я создал для одного заказа на продажу, который отлично работает. Он скрывает все строки, в которых я нуждаюсь. К сожалению
CREATE PROC [dbo].[uspS_SRS_RemovePaymentDetailsBOL] @SalesOrder INT
AS
DECLARE
@Start AS INT
SET @Start = (SELECT SalesOrderLineNo
FROM SorDetail
WHERE SalesOrder = @SalesOrder
AND Comment = '-----Payment Info-----')
SELECT SalesOrder
, Comment
, Item
, Qty
, SalesOrderLineNo
FROM SalesOrderDetail
WHERE CAST(SalesOrder AS INT) = @SalesOrder
AND SalesOrderLine NOT BETWEEN @Start AND @Start + 3
AND NComment != ''
Вот где я застрял. Как я могу присвоить значение 1 этим конкретным строкам комментариев «----- Информация об оплате -----» и «----- Информация о депозите -----», зная, что SalesOrderLineNo
никогда не будет последовательной или то же самое для каждого заказа клиента? См. пример данных ниже.
SalesOrder Item Qty Comment SalesOrderLineNo NewAssignedValue
12345 4321 1 1 0
12345 4322 3 2 0
12345 4312 5 3 0
12345 4 0
12345 5 0
12345 -----Payment Info----- 9 1
12345 Payment: $100 10 1
12345 Invoiced: $90 11 1
12345 Date 10-12-16 12 1
12345 13 0
12346 4344 1 1 0
12346 4376 3 2 0
12346 4329 5 3 0
12346 4567 1 4 0
12346 5 0
12346 6 0
12346 Free Freight 7 0
12346 8 0
12346 -----Deposit Info----- 9 1
12346 Deposit: $400 10 1
12346 Remaining: $190 11 1
12346 Date 10-10-16 12 1
12348 4390 1 1 0
12348 Credit Card on File 2 0
12348 Call Bill on Delivery 3 0
12348 ----Shipping Notes---- 4 0
12348 Address 5 0
12348 14356 21st ST 6 0
12348 City, State Zip 7 0
EDIT: я добавил больше деталей к наборам данных
sql,sql-server-2008,tsql,crystal-reports,