Hi All,
Here is the solution. Variables in long queries are entered in differently.
/*SELECT FROM [dbo].[OINV] T70*/
declare @fromdate as datetime
/* WHERE */
set @fromdate = /* T70.DocDate */ '[%0]'
/*SELECT FROM [dbo].[OINV] T71*/
declare @tilldate as datetime
/* WHERE */
set @tilldate = /* T71.DocDate */ '[%1]'
declare @contractid varchar(500) = ''
declare @rowsCount INT
declare @i INT = 1
declare @names varchar(max) = ''
DECLARE @MyEngineSerials TABLE
(
Id int identity,
Name varchar(500)
)
DECLARE @MyResults TABLE
(
ContractID varchar(500),
EndDate date,
ObjType varchar(500),
DocNum varchar(500),
DocDate date,
Dscription varchar(500),
Quantity varchar(500),
LineTotal varchar(500),
Address2 varchar(500),
callID varchar(500),
serials varchar(500),
processed int
)
insert into @MyResults
SELECT
T0.[ContractID],
T0.[EndDate],
T4.[ObjType],
T4.[DocNum],
T4.[DocDate],
T5.[Dscription],
T5.[Quantity],
T5.[LineTotal],
T4.[Address2],
T7.[callID],
'not determined' as "Engine SN" ,
0 as "processed"
FROM [dbo].[OCTR] T0
INNER JOIN [dbo].[CTR2] T1 ON T0.[ContractID] = T1.[ContractID]
INNER JOIN [dbo].[ORCP] T2 ON T1.[RcpEntry] = T2.[AbsEntry]
INNER JOIN ODRF T3 ON T2.[DraftEntry] = T3.[DocEntry]
INNER JOIN OINV T4 ON T3.[DocEntry] = T4.[draftKey]
INNER JOIN INV1 T5 ON T4.[DocEntry] = T5.[DocEntry]
INNER JOIN OSCL T7 ON T0.[ContractID] = T7.[contractID]
where T4.[DocDate] BETWEEN @fromdate AND @tilldate
While (Select Count(*) From @MyResults Where processed = 0) > 0
Begin
set @contractid = (Select Top 1 ContractID From @MyResults Where processed = 0)
--DELETE FROM @MyTable
insert into @MyEngineSerials
SELECT DISTINCT
T6.[ManufSN]
FROM
[dbo].[OCTR] T0
INNER JOIN CTR1 T6 ON T0.[ContractID] = T6.[ContractID]
WHERE
T0.[ContractID] = @contractid
set @rowsCount = (select COUNT(Id) from @MyEngineSerials)
while @i <= @rowsCount
begin
set @names = @names + ' ' + (select name from @MyEngineSerials where Id = @i)
set @i = @i + 1
end
--select @names as serial_numbers
--Do some processing here
Update @MyResults Set serials = @names Where ContractID = @contractid
Update @MyResults Set processed = 1 Where ContractID = @contractid
End
select * from @MyResults