Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8581

Re: Query where statement issues

$
0
0

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


Viewing all articles
Browse latest Browse all 8581

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>