declare myCursor cursor for select PONo from PurchaseOrders where Batched = 1 and DateBatched = @ProcessDate open myCursor declare @PONO as bigint declare @myTable as table(data varchar(424)) FETCH NEXT FROM myCursor into @PONO WHILE @@FETCH_STATUS = 0 BEGIN insert into @myTable select CAST( cast('01' as char(2)) + cast(PONO as char(9)) + cast(replicate(space(1), 8 - LEN(LTRIM(RTRIM(VendNo)))) + LTrim(RTrim(Upper(VendNo))) as char(8)) + cast(space(2) as char(2)) + cast('01' as char(2)) + cast('02' as char(2)) + cast(replicate(0, 4 - LEN(REPLACE(RTrim(LTrim(TermPct)), '.', ''))) + REPLACE(RTrim(LTrim(TermPct)), '.', '') as char(4)) + cast(replicate(0, 4 - LEN(LTRIM(RTRIM(TermDays)))) + LTrim(RTrim(TermDays)) as char(4)) + cast(ShipMethod as char(2)) + cast(LTrim(RTrim(Upper(City))) + replicate(space(1), 30 - LEN(LTRIM(RTRIM(City)))) as char(30)) + cast('19'+space(6) as char(8)) + convert(char(8), EntryDate ,112) + convert(char(8), RequiredDate ,112) + cast('01'+space(2) as char(4)) + cast('I' as char(1)) + cast(LTRIM(RTRIM(STR(YEAR(GETDATE())+3))) + '0101' as char(8)) + cast(space(8) as char(8)) + cast(Warehouse as char(2)) + cast(space(2) as char(2)) + cast(space(2) as char(2)) + cast(space(2) as char(2)) + cast('01' as char(2)) + --PAYMENT-CODE cast('000' as char(3)) + cast(space(1) as char(1)) + cast(space(4) as char(4)) + cast(space(296) as char(296)) as char(424)) as data from PurchaseOrders where PONO = @PONO UNION ALL select CAST( cast('02' as char(2)) + cast(PONO as char(9)) + cast(replicate('0', 4 - LEN(LTRIM(RTRIM(LinNo)))) + LTrim(RTrim(Upper(LinNo))) as char(4)) + cast(LTrim(RTrim(Upper(ItemNo))) + replicate(space(1), 20 - LEN(LTRIM(RTRIM(ItemNo)))) as char(20)) + cast(replicate('0', 9 - LEN(LTRIM(RTRIM(Qty)))) + LTrim(RTrim(Qty)) as char(9)) + convert(char(8), ReqDate ,112) + cast('01'+space(2) as char(4)) + cast(space(4) as char(4)) + cast('000000000' as char(9)) + CAST(replicate('0', 9 - len(Left(Price, CHARINDEX('.',Price)-1))) + Left(Price, CHARINDEX('.',Price)-1) + substring(LTrim(RTrim(Price)), CHARINDEX('.', Price) + 1, 2) + replicate('0', 6 - len(substring(LTrim(RTrim(Price)), CHARINDEX('.', Price) + 1, 2))) as char(15)) + cast(Replicate(0, 15) as char(15)) + --LANDED-COST cast('A' as char(1)) + cast(space(1) as char(1)) + cast(space(1) as char(1)) + cast(space(322) as char(322)) as char(424)) as data from PurchaseOrderDetail where PONO = @PONO UNION ALL select CAST( cast('03' as char(2)) + cast(PONO as char(9)) + cast(replicate('0', 3 - LEN(LTRIM(RTRIM(LinNo)))) + LTrim(RTrim(LinNo)) as char(3)) + cast(replicate(space(1), 10) + LTrim(RTrim(Comment)) + replicate(space(1), 400 - LEN(LTRIM(RTRIM(Comment)))) as char(410)) as char(424)) as data from PurchaseOrderComments a where PONO = @PONO FETCH NEXT FROM myCursor into @PONO END select * from @myTable CLOSE myCursor DEALLOCATE myCursor GO