Quantcast
Channel: how can i transform these command at dynamic command?
Viewing all articles
Browse latest Browse all 8

how can i transform these command at dynamic command?

$
0
0
​Declare @TEMP Table  (FIL VARCHAR(200)) 
Declare @sqlVarchar(5000)
Declare @PI1Varchar(50)
Declare @PO1Varchar(50)
Declare @PP1Varchar(50)
Declare @idVarchar(14)
DECLARE @dbVarchar(255)
DECLARE @locVarchar(255)
Declare @empVarchar(02) 
Declare @dirxmlVarchar( 300 )
Declare @dirdesVarchar( 300 )
Declare @diroriVarchar( 300 )

SET @id = '99888776000066'

SELECT @db = rtrim(db), @emp = rtrim(dmp) FROM REG00.dbo.Main WHERE id = @id

SET @PI1 = @db + '.dbo.PI1' + @emp + '0'
SET @PO1 = @db + '.dbo.PO1' + @emp + '0'
SET @PP1 = @db + '.dbo.PIP' + @emp + '0'
SET @dirori = 'C:\XML\' + @emp + '\'
SET @dirdes = 'C:\XML\ERRO\'

SET @sql  = 'insert into ' + @TEMP + '(' + 
 ' select PI1_P_ARQ FROM (select round(sum(PI1_vlr),2) as MAIN ,PI1_nmb,PI1_P_ARQ from ' + @PI1 + ' group by PI1_nmb,PI1_P_ARQ) A
JOIN (select round(sum(PO1_vlo),2) as PART,PO1_nmb from ' + @PO1 + ' group by PO1_nmb ) B 
ON A.PI1_nmb = B.PO1_nmb 
JOIN(select round(sum(PIP_vlr),2) as PAG,PIP_nmb, count(*) as PGT from ' + @PP1 + ' group by PIP_nmb ) C 
ON C.PIP_nmb = B.PO1_nmb AND C.PIP_nmb=A.PI1_nmb
WHERE  A.MAIN=B.PART OR A.MAIN<>C.PAG AND PGT = 1
ORDER BY PI1_P_ARQ)'
print (@sql)
EXEC (@sql)

SET @sql = 'SELECT 'xp_cmdshell ''move @dirori' + FIl'  +' @dirdes''
GO ' FROM @TEMP
Exec (@sql) 

Why these commands are wrong? How can I do to insert the result a table at @TEMP?
After I must read @temp and move files  between directories

 


Viewing all articles
Browse latest Browse all 8

Latest Images

Trending Articles





Latest Images