Dear all,
Test in on Azure atmosphere it takes just 8 sec for getting rows In our UAT cluster more than 5 minutes.
In a non-peak hours and all the indexes rebuilded/reorganized and STATS for tables performed.
I attach you the view (:-) but anyway, have you got any ideas how to improve it?
CREATE VIEW [dbo].[EDIWarehouseOrder]
AS
SELECT
sls.DOCUMENTSTATUS AS Docstatus,
sln.SALESSTATUS AS Salesstatus,
--ISNULL(sls.recid,0) AS recid,
ISNULL(rte.recid,0) AS recid,
--ISNULL(sls.SALESID,'') AS orderno,
ISNULL(sls.SALESID + '_' + rte.pickingrouteid,'') AS orderno,
--ISNULL(rte.pickingrouteid,'') AS orderno,
CONVERT(NVARCHAR(8), ISNULL(sls.createddatetime,0), 112) AS orderdate,
ISNULL(rte.pickingrouteid,'') AS pickinglistid,
CONVERT(NVARCHAR(8), ISNULL(hdr.createddatetime,0), 112) AS pickinglistdate,
--'O' AS ordertype,
sls.salestype AS ordertype,
ISNULL(sls.salesid,'') AS salesorderno,
ISNULL(sls.PURCHORDERFORMNUM,'') AS purchaseorderno,
--ISNULL(cus.ACCOUNTNUM,'') AS cusno,
ISNULL(hdr.customer,'') AS cusno,
'' AS status,
--ISNULL(rte2.change,'N') AS status, --(check if needed)
'' AS bolno,
--ISNULL(sls.customerref,'') AS shiptoxref,
LTRIM(RTRIM(ISNULL(dloc.LOCATIONID,''))) AS shiptoxref,
--ISNULL(sln.DELIVERYNAME,'') AS shiptoname,
LTRIM(RTRIM(ISNULL(dloc.description,''))) AS shiptoname,
--ISNULL(del.street, '') AS shiptoadd1,
CASE WHEN CHARINDEX(CHAR(10), del.street) > 0
THEN SUBSTRING(del.street, 1, CHARINDEX(CHAR(10), del.street))
ELSE del.street
END AS shiptoadd1,
--'' AS shiptoadd2,
CASE WHEN CHARINDEX(CHAR(10), del.street) > 0
AND CHARINDEX(CHAR(10), del.street, CHARINDEX(CHAR(10), del.street) + 1) = 0
THEN SUBSTRING(del.street,
CHARINDEX(CHAR(10), del.street) + 1,
LEN(del.street) - CHARINDEX(CHAR(10), del.street))
WHEN CHARINDEX(CHAR(10), del.street) > 0
AND CHARINDEX(CHAR(10), del.street, CHARINDEX(CHAR(10), del.street) + 1) > 0
THEN SUBSTRING(del.street,
CHARINDEX(CHAR(10), del.street) + 1,
CHARINDEX(CHAR(10), del.street, CHARINDEX(CHAR(10), del.street) + 1) -
CHARINDEX(CHAR(10), del.street))
ELSE ''
END AS shiptoadd2,
'' AS shiptoadd3,
ISNULL(del.CITY,'') AS shiptocity,
ISNULL(del.[STATE],'') AS shiptostate,
ISNULL(del.ZIPCODE,'') AS shiptozip,
ISNULL(del.COUNTRYREGIONID,'') AS shiptocountry,
CONVERT(NVARCHAR(8), ISNULL(sls.shippingdaterequested,0), 112) AS shipdate,
CONVERT(NVARCHAR(8), ISNULL(sls.DEADLINE,0), 112) AS canceldate,
ISNULL(sls.dlvmode,'') AS shipviaid,
ISNULL(sls.payment,'') AS termsid,
ISNULL(LEFT(sls.DLVTERM,3),'') AS collect,
LTRIM(RTRIM(ISNULL(tmc.SCAC,''))) AS shippinginstructions1, -- MC 05/11/2016 Added SCAC
'' AS shippinginstructions2,
REPLACE(REPLACE(LTRIM(RTRIM(ISNULL(d1.NOTES,''))),CHAR(10),' '),CHAR(13),' ') AS comment1, -- MC 04/19/2016 was ISNULL(lcmtsh.NAME,'') but no data
'' AS comment2,
'' AS comment3,
ISNULL(sls.INVENTLOCATIONID,'') AS inventorylocationid,
'' AS department,
ISNULL(loc.DESCRIPTION,'') AS billtoname,
--CASE
-- WHEN CHARINDEX(',', adr.[ADDRESS]) > 0
-- THEN LTRIM(RTRIM(SUBSTRING(adr.[ADDRESS],
-- 1,
-- CHARINDEX(',', adr.[ADDRESS]) - 1)))
-- ELSE ISNULL(adr.[ADDRESS],'')
--END AS billtoadd1,
CASE
WHEN CHARINDEX(',', adr.[street]) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.[street],
1,
CHARINDEX(',', adr.[street]) - 1)))
ELSE ISNULL(adr.[street],'')
END AS billtoadd1,
'' AS billtoadd2,
ISNULL(adr.CITY,'') AS billtocity,
ISNULL(adr.[state],'') AS billtostate,
ISNULL(adr.ZIPCODE,'') AS billtozip,
ISNULL(adr.COUNTRYREGIONID,'') AS billtocountry,
NULL AS billtocontact,
NULL AS billtocontact2,
NULL AS billtophone,
NULL AS billtophone2,
NULL AS billtofax,
NULL AS billtoemail,
NULL AS cususer1,
NULL AS cususer2,
NULL AS cususer3,
NULL AS cususer4,
NULL AS cususer5,
--ISNULL(del.recid,0) AS altadrid,
ISNULL(adr.recid,0) AS altadrid,
ISNULL(loc.description,'') AS altadrname,
--CASE
-- WHEN CHARINDEX(',', del.street) > 0
-- THEN LTRIM(RTRIM(SUBSTRING(del.street,
-- 1,
-- CHARINDEX(',', del.street) - 1)))
-- ELSE ISNULL(del.street,'')
-- END AS altadradd1,
CASE
WHEN CHARINDEX(',', adr.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.street,
1,
CHARINDEX(',', adr.street) - 1)))
ELSE ISNULL(adr.street,'')
END AS altadradd1,
--CASE
-- WHEN CHARINDEX(',', del.street) > 0
-- THEN LTRIM(RTRIM(SUBSTRING(del.street,
-- CHARINDEX(',', del.street) + 1,
-- LEN(del.street) - CHARINDEX(',', del.street) + 1)))
-- ELSE ''
--END AS altadradd2,
CASE
WHEN CHARINDEX(',', adr.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.street,
CHARINDEX(',', adr.street) + 1,
LEN(adr.street) - CHARINDEX(',', adr.street) + 1)))
ELSE ''
END AS altadradd2,
NULL AS altadradd3,
--ISNULL(del.city,'') AS altadrcity,
ISNULL(adr.city,'') AS altadrcity,
--ISNULL(del.state,'') AS altadrstate,
ISNULL(adr.state,'') AS altadrstate,
--ISNULL(del.zipcode,'') AS altadrzip,
ISNULL(adr.zipcode,'') AS altadrzip,
--ISNULL(del.countryregionid,'') AS altadrcountry,
ISNULL(adr.countryregionid,'') AS altadrcountry,
NULL AS altadrcontact,
NULL AS altadrcontact2,
NULL AS altadrphone,
NULL AS altadrphone2,
NULL AS altadrfax,
NULL AS altadruser1,
NULL AS altadruser2,
NULL AS altadruser3,
NULL AS altadruser4,
NULL AS altadruser5,
NULL AS altadremail,
LTRIM(RTRIM(ISNULL(sls.INVENTLOCATIONID,''))) AS shipfrid,
LTRIM(RTRIM(ISNULL(sf.NAME,''))) AS shipfrname,
CASE
WHEN CHARINDEX(',', ila.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(ila.street,
1,
CHARINDEX(',', ila.street) - 1)))
ELSE ISNULL(ila.street,'')
END AS shipfradd1,
CASE
WHEN CHARINDEX(',', ila.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(ila.street,
CHARINDEX(',', ila.street) + 1,
LEN(ila.street) - CHARINDEX(',', ila.street) + 1)))
ELSE ''
END AS shipfradd2,
'' AS shipfradd3,
LTRIM(RTRIM(ISNULL(ila2.City,''))) AS shipfrcity,
LTRIM(RTRIM(ISNULL(ila2.State,''))) AS shipfrstate,
LTRIM(RTRIM(ISNULL(ila2.ZipCode,''))) AS shipfrzip,
'' AS shipfrcountry,
'' AS shipfrcontact,
'' AS shipfrcontact2,
'' AS shipfrphone,
'' AS shipfrphone2,
'' AS shipfrfax,
'' AS shipfremail,
'' AS shipfruser1,
'' AS shipfruser2,
'' AS shipfruser3,
'' AS shipfruser4,
'' AS shipfruser5,
'' AS locname,
'' AS locadd1,
'' AS locadd2,
'' AS locadd3,
'' AS loccity,
'' AS locstate,
'' AS loczip,
'' AS loccountry,
ISNULL(sln.recid,0) AS recidline,
ISNULL(sln.linenum,0) AS [lineno],
--ISNULL(sln.itemid,'') AS itemid,
ISNULL(lin.itemid,'') AS itemid,
ISNULL(sln.externalitemid,'') AS cusitemid,
ISNULL(sln.[name],'') AS itemdesc,
NULL AS itemdesc2,
CONVERT(DECIMAL(20,4), ISNULL(sln.salesprice,0)) AS price, -- MC 05/18/2016 Change to retail price per Alex S. Don't send internal price to warehouse.
1 AS priceratio,
CONVERT(DECIMAL(20,4), ISNULL(sln.LINEAMOUNT,0)) AS unitcost, -- MC 05/18/2016 Change to retail price per Alex S. Don't send internal price to warehouse.
'' AS taxflag,
CONVERT(DECIMAL(20,4), ISNULL(sln.qtyordered,0)) AS qtyord,
--CONVERT(DECIMAL(20,4), ISNULL(sln.SALESQTY,0)) AS qtytoship,
CONVERT(DECIMAL(20,4), ISNULL(lin.QTY,0)) AS qtytoship,
ISNULL(sln.salesunit,'') AS uom,
'' AS locid,
CONVERT(NVARCHAR(8), ISNULL(sls.RECEIPTDATEREQUESTED,0), 112) AS requestdate,
CONVERT(NVARCHAR(8), ISNULL(sls.SHIPPINGDATEREQUESTED,0), 112) AS promisedate,
CONVERT(NVARCHAR(8), ISNULL(sls.shippingdaterequested,0), 112) AS requestedshipdate,
CAST(RETAILSALESPRICE AS money) AS linuser1, -- MC 05/04/2016 Use for retail price
--'' AS linuser1, -- MC 05/04/2016 Use for retail price
sln.INVENTTRANSID AS linuser2,
NULL AS linuser3,
NULL AS linuser4,
NULL AS linuser5,
'' AS hdruser1,
'' AS hdruser2,
'' AS hdruser3,
'' AS hdruser4,
'' AS hdruser5,
CONVERT(nvarchar(8), ISNULL(sls.createddatetime,0), 112) AS pickeddate,
CONVERT(nvarchar(8), ISNULL(sls.createddatetime,0), 112) AS shippeddate,
CONVERT(nvarchar(8), ISNULL(0,0), 112) AS posteddate,
sls.dataareaid AS dataareaid
--SELECT sls.RECID, d1.REFRECID,d1.TYPEID,sls.PARTITION,d1.PARTITION,d1.REFTABLEID
FROM dbo.WMSPICKINGROUTE rte WITH (NOLOCK)
LEFT JOIN (SELECT distinct transrefid,'R' as change from dbo.WMSPICKINGROUTE WITH (NOLOCK) WHERE expeditionstatus = '20') rte2 -- ss 6/2/2014
ON rte2.transrefid = rte.transrefid
INNER JOIN dbo.wmsordertrans lin WITH (NOLOCK)
ON rte.PICKINGROUTEID = lin.ROUTEID
AND rte.DATAAREAID = lin.DATAAREAID -- EC 10/15/2013
AND rte.PARTITION = lin.PARTITION
INNER JOIN dbo.wmsorder hdr WITH (NOLOCK)
ON hdr.ORDERID = lin.orderid
AND hdr.dataareaid = lin.dataareaid
AND hdr.PARTITION = lin.PARTITION
INNER JOIN dbo.custtable cus WITH (NOLOCK)
ON hdr.customer = cus.accountnum
AND hdr.dataareaid = cus.dataareaid
AND hdr.PARTITION = cus.PARTITION
INNER JOIN dbo.salestable sls WITH (NOLOCK)
ON lin.INVENTTRANSREFID = sls.salesid
AND hdr.dataareaid = sls.dataareaid
AND hdr.PARTITION = sls.PARTITION
INNER JOIN dbo.salesline sln WITH (NOLOCK)
ON sls.salesid = sln.salesid
AND lin.itemid = sln.itemid
AND lin.dataareaid = sln.dataareaid
AND lin.PARTITION = sln.PARTITION
AND lin.INVENTTRANSID = sln.INVENTTRANSID /* BJK 12/1/2014 to account for the same item with different line
numbers need to track back to the original inventory trans id from WMS */
LEFT JOIN dbo.LCRSALESLINEEXT rtl WITH (NOLOCK)
ON sln.RECID = rtl.REFRECID
AND sln.DATAAREAID = rtl.DATAAREAID
AND sln.PARTITION = rtl.PARTITION
INNER JOIN dbo.dirpartylocation par WITH (NOLOCK) --TK added
ON par.party = cus.party
AND par.PARTITION = cus.PARTITION
AND par.IsPostalAddress = 1
AND par.isPrimary = 1
-- ---- ----DJI 2/6/2012 next two joins for filtering the delivery records
-- ----INNER JOIN DirPartyLocationRole plr WITH (NOLOCK) -- DJI 2/6/2012
-- ---- ON par.recid = plr.partylocation
-- ----INNER JOIN LogisticsLocationRole llr WITH (NOLOCK) -- DJI 2/6/2012
-- ---- ON plr.locationrole = llr.recid
-- ---- AND llr.type = 2 --delivery
INNER JOIN dbo.LogisticsLocation loc WITH (NOLOCK) --TK added
ON loc.recid = par.Location
AND loc.PARTITION = par.PARTITION
AND loc.ispostaladdress = 1 -- DJI 2/6/2012
INNER JOIN LogisticsPostalAddress adr WITH (NOLOCK) --TK added
ON adr.location = loc.recid
AND adr.PARTITION = loc.PARTITION
AND adr.ValidFrom < GetDate()
AND adr.ValidTo > GetDate()
LEFT JOIN dbo.InventLocation il WITH (NOLOCK)
ON il.InventLocationID = rte.INVENTLOCATIONID
AND il.DataAreaID = hdr.DataAreaID
AND il.PARTITION = hdr.PARTITION
LEFT JOIN LogisticsPostalAddress del WITH (NOLOCK)
ON del.recid = sls.DeliveryPostalAddress
AND del.PARTITION = sls.PARTITION
LEFT JOIN dbo.LogisticsLocation dloc WITH (NOLOCK)
ON del.location = dloc.recid
AND del.PARTITION = dloc.PARTITION
LEFT JOIN INVENTLOCATIONLOGISTICSLOCATION ladr WITH (NOLOCK)
ON il.recid = ladr.inventlocation
AND il.PARTITION = ladr.PARTITION
LEFT JOIN dbo.DIRDUNSNUMBER duns WITH (NOLOCK) --TK 10/23/2013
ON duns.RECID = dloc.DUNSNUMBERRECID
AND duns.PARTITION = dloc.PARTITION
LEFT JOIN LogisticsPostalAddress ila WITH (NOLOCK)
ON ila.location = ladr.location
AND ila.PARTITION = ladr.PARTITION
LEFT JOIN TMSCARRIERSERVICE tms WITH (NOLOCK) -- MC 04/08/2016 Added to match EDICarrier view setup.
ON tms.DLVMODEID = sls.dlvmode
AND tms.DATAAREAID = sls.DATAAREAID
AND tms.PARTITION = sls.PARTITION
LEFT JOIN TMSCARRIER tmc WITH (NOLOCK) -- MC 05/11/2016 Added to get SCAC
ON tmc.CARRIERCODE = tms.CARRIERCODE
AND tmc.DATAAREAID = tms.DATAAREAID
AND tmc.PARTITION = tms.PARTITION
LEFT JOIN dbo.LogisticsLocation loc2 WITH (NOLOCK) -- TK - Link to parent del adr
ON loc2.RECID = par.Location
AND loc2.ISPOSTALADDRESS = 1
AND loc2.PARTITION = par.PARTITION
LEFT JOIN LogisticsElectronicAddress tel WITH (NOLOCK) -- Contact info
ON tel.location = loc2.recid
AND tel.PARTITION = loc2.PARTITION
LEFT JOIN (SELECT DISTINCT REFRECID, REFCOMPANYID, REFTABLEID, MAX(NOTES) as NAME FROM dbo.DOCUREF WITH (NOLOCK) GROUP BY REFRECID,REFCOMPANYID, REFTABLEID) lcmtsh -- EC 10/17/2013
ON sls.DATAAREAID = lcmtsh.REFCOMPANYID
AND sls.RECID = lcmtsh.REFRECID
AND lcmtsh.REFTABLEID = 366
--and lcmtsh.TYPEID = 'S&H'
-- SHIPFROM
LEFT JOIN dbo.INVENTLOCATION sf WITH (NOLOCK)
ON sf.INVENTLOCATIONID = sls.INVENTLOCATIONID -- MC 04/08/2016 Change back to INNER JOIN.
AND sf.DATAAREAID = sls.DATAAREAID
AND sf.PARTITION = sls.PARTITION
LEFT JOIN INVENTLOCATIONLOGISTICSLOCATION ladr2 WITH (NOLOCK) --TK added -- MC 04/08/2016 Change back to INNER JOIN. Currently no data in table.
ON sf.recid = ladr2.inventlocation
AND sf.PARTITION = ladr2.PARTITION
LEFT JOIN LogisticsPostalAddress ila2 WITH (NOLOCK) --TK added -- MC 04/08/2016 Change back to INNER JOIN
ON ila2.location = ladr2.location
AND ila2.validfrom <= GETUTCDATE() -- DJI 2/7/2012
AND ila2.validto >= GETUTCDATE() -- DJI 2/7/2012
AND ila2.PARTITION = ladr2.PARTITION
LEFT JOIN DOCUREF d1 WITH (NOLOCK)
ON sls.RECID = d1.REFRECID
AND 'Note' = d1.TYPEID
AND 'Note/Special Instruction'= d1.NAME
AND d1.REFTABLEID = 366
AND sls.PARTITION = d1.PARTITION
--LEFT JOIN DOCUREF d2 WITH (NOLOCK)
-- ON sls.RECID = d2.REFRECID
-- AND 'EDI Dates' = d2.NAME
-- AND d2.REFTABLEID = 366
-- AND sls.PARTITION = d2.PARTITION
WHERE sls.DOCUMENTSTATUS = '4'
AND rte.EXPEDITIONSTATUS != '20'
--AND hdr.createddatetime > GETDATE() - 60 -- MC 04/08/2016 Removed for testing
--AND rte.pickingrouteid='DCA-000081'
-- USE FOR TRANSFER ORDERS. Warehouse cannot process 943's so we send them using the 940 view.
UNION ALL
SELECT
'' AS Docstatus,
'' AS Salesstatus,
hdr.recid AS recid,
hdr.TRANSFERID AS orderno,
CONVERT(NVARCHAR(8), ISNULL(hdr.SHIPDATE,0), 112) AS orderdate,
'' AS pickinglistid,
'' AS pickinglistdate,
'' AS ordertype,
'' AS salesorderno,
LTRIM(RTRIM(ISNULL(hdr.TRANSFERID,''))) AS purchaseorderno,
ISNULL(hdr.INVENTLOCATIONIDTO,'') AS cusno, -- assumes warehouse ID; if using sites in AX, use loc.inventsiteid
'' AS status,
ISNULL(hdr.TRANSFERID,'') AS bolno,
ISNULL(hdr.INVENTLOCATIONIDTO,'') AS shiptoxref, --or loc.INVENTSITEID
ISNULL(hdr.TOADDRESSNAME,'') AS shiptoname,
CASE
WHEN CHARINDEX(',', adr.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.STREET,
1,
CHARINDEX(',', adr.STREET) - 1)))
ELSE ISNULL(adr.STREET,'')
END AS shiptoadd1,
CASE
WHEN CHARINDEX(',', adr.STREET) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.STREET,
CHARINDEX(',', adr.STREET) + 1,
LEN(adr.STREET) - CHARINDEX(',', adr.STREET) + 1)))
ELSE ''
END AS shiptoadd2,
'' AS shiptoadd3,
ISNULL(adr.CITY,'') AS shiptocity,
ISNULL(adr.STATE,'') AS shiptostate,
ISNULL(adr.ZIPCODE,'') AS shiptozip,
ISNULL(adr.COUNTRYREGIONID,'') AS shiptocountry,
CONVERT(NVARCHAR(8), ISNULL(hdr.SHIPDATE,0), 112) AS shipdate,
'' AS canceldate,
ISNULL(hdr.DLVMODEID,'') AS shipviaid, -- MC 04/08/2016 Changed to match "carrierid" in VP carrier table
ISNULL(hdr.DLVTERMID,'') AS termsid,
NULL AS collect,
'' AS shippinginstructions1,
'' AS shippinginstructions2,
--REPLACE(REPLACE(LTRIM(RTRIM(ISNULL(d1.NOTES,''))),CHAR(10),' '),CHAR(13),' ') AS comment1, -- NOTES MC 05/10/2016 CHECK AND TEST
NULL AS comment1,
NULL AS comment2,
NULL AS comment3,
ISNULL(hdr.INVENTLOCATIONIDTO,'') AS inventorylocationid, -- or loc.inventsiteid
'' AS department,
ISNULL(hdr.FROMADDRESSNAME,'') AS billtoname,
NULL AS billtoadd1,
NULL AS billtoadd2,
NULL AS billtocity,
NULL AS billtostate,
NULL AS billtozip,
NULL AS billtocountry,
NULL AS billtocontact,
NULL AS billtocontact2,
NULL AS billtophone,
NULL AS billtophone2,
NULL AS billtofax,
NULL AS billtoemail,
NULL AS cususer1,
NULL AS cususer2,
NULL AS cususer3,
NULL AS cususer4,
NULL AS cususer5,
'' AS altadrid,
ISNULL(hdr.TOADDRESSNAME,'') AS altadrname,
CASE
WHEN CHARINDEX(',', adr.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.STREET,
1,
CHARINDEX(',', adr.STREET) - 1)))
ELSE ISNULL(adr.STREET,'')
END AS altadradd1,
CASE
WHEN CHARINDEX(',', adr.STREET) > 0
THEN LTRIM(RTRIM(SUBSTRING(adr.STREET,
CHARINDEX(',', adr.STREET) + 1,
LEN(adr.STREET) - CHARINDEX(',', adr.STREET) + 1)))
ELSE ''
END AS altadradd2,
NULL AS altadradd3,
ISNULL(adr.CITY,'') AS altadrcity,
ISNULL(adr.STATE,'') AS altadrstate,
ISNULL(adr.ZIPCODE,'') AS altadrzip,
ISNULL(adr.COUNTRYREGIONID,'') AS altadrcountry,
NULL AS altadrcontact,
NULL AS altadrcontact2,
NULL AS altadrphone,
NULL AS altadrphone2,
NULL AS altadrfax,
NULL AS altadruser1,
NULL AS altadruser2,
NULL AS altadruser3,
NULL AS altadruser4,
NULL AS altadruser5,
NULL AS altadremail,
hdr.INVENTLOCATIONIDFROM AS shipfrid, -- or sf.inventsiteid
ISNULL(hdr.FROMADDRESSNAME,'') AS shipfrname,
CASE
WHEN CHARINDEX(',', ila.street) > 0
THEN LTRIM(RTRIM(SUBSTRING(ila.STREET,
1,
CHARINDEX(',', ila.STREET) - 1)))
ELSE ISNULL(ila.STREET,'')
END AS shipfradd1,
CASE
WHEN CHARINDEX(',', ila.STREET) > 0
THEN LTRIM(RTRIM(SUBSTRING(ila.STREET,
CHARINDEX(',', ila.STREET) + 1,
LEN(ila.STREET) - CHARINDEX(',', ila.STREET) + 1)))
ELSE ''
END AS shipfradd2,
'' AS shipfradd3,
ISNULL(ila.CITY,'') AS shipfrcity,
ISNULL(ila.STATE,'') AS shipfrstate,
ISNULL(ila.ZIPCODE,'') AS shipfrzip,
ISNULL(ila.COUNTRYREGIONID,'') AS shipfrcountry,
'' AS shipfrcontact,
'' AS shipfrcontact2,
'' AS shipfrphone,
'' AS shipfrphone2,
'' AS shipfrfax,
'' AS shipfremail,
'' AS shipfruser1,
'' AS shipfruser2,
'' AS shipfruser3,
'' AS shipfruser4,
'' AS shipfruser5,
'' AS locname,
ISNULL(hdr.FROMADDRESSNAME,'') AS locadd1,
'' AS locadd2,
'' AS locadd3,
'' AS loccity,
'' AS locstate,
'' AS loczip,
'' AS loccountry,
ISNULL(lin.recid,0) AS recidline,
ISNULL(lin.linenum,0) AS [lineno],
lin.ITEMID AS itemid,
'' AS cusitemid,
ISNULL(ite.PRODUCTNAME,'') AS itemdesc, -- MC 05/10/2016 CHECK
NULL AS itemdesc2,
0 AS price,
'' AS priceratio,
0 AS unitcost,
'' AS taxflag,
ISNULL(lin.QTYTRANSFER, 0) AS qtyord,
ISNULL(lin.QTYSHIPPED,0) AS qtytoship,
UPPER(ISNULL(lin.UNITID,'')) AS uom,
hdr.INVENTLOCATIONIDFROM AS locid,
CONVERT(NVARCHAR(8), ISNULL(lin.SHIPDATE,0), 112) AS requestdate,
CONVERT(NVARCHAR(8), ISNULL(lin.RECEIVEDATE,0), 112) AS promisedate,
CONVERT(NVARCHAR(8), ISNULL(lin.SHIPDATE,0), 112) AS requestedshipdate,
'' AS linuser1, -- MC 05/04/2016 Use for retail price
lin.INVENTTRANSID AS linuser2,
NULL AS linuser3,
NULL AS linuser4,
NULL AS linuser5,
'' AS hdruser1,
'' AS hdruser2,
'' AS hdruser3,
'' AS hdruser4,
'' AS hdruser5,
CONVERT(NVARCHAR(8), ISNULL(lin.shipdate,0), 112) AS pickeddate,
CONVERT(NVARCHAR(8), ISNULL(lin.shipdate,0), 112) AS shippeddate,
'' AS posteddate,
hdr.dataareaid AS dataareaid
FROM dbo.INVENTTRANSFERTABLE hdr WITH (NOLOCK)
INNER JOIN dbo.INVENTTRANSFERLINE lin WITH (NOLOCK)
ON hdr.TRANSFERID = lin.TRANSFERID
AND hdr.dataareaid = lin.dataareaid
AND hdr.PARTITION = lin.PARTITION
INNER JOIN dbo.INVENTLOCATION loc WITH (NOLOCK)
ON loc.INVENTLOCATIONID = hdr.INVENTLOCATIONIDTO
AND loc.DATAAREAID = hdr.DATAAREAID
AND loc.PARTITION = hdr.PARTITION
INNER JOIN dbo.INVENTTABLE itm WITH (NOLOCK)
ON lin.ITEMID = itm.ITEMID
AND lin.DATAAREAID = itm.DATAAREAID
AND lin.PARTITION = itm.PARTITION
INNER JOIN dbo.INVENTTABLEEXPANDED ite WITH (NOLOCK)
ON itm.itemid = ite.itemid
AND itm.DATAAREAID = ite.DATAAREAID
AND itm.PARTITION = ite.PARTITION
LEFT JOIN dbo.INVENTDIM dim WITH (NOLOCK)
ON lin.inventdimid = dim.inventdimid
AND lin.DATAAREAID = dim.DATAAREAID
AND lin.PARTITION = dim.PARTITION
LEFT JOIN dbo.INVENTLOCATION sf WITH (NOLOCK)
ON sf.INVENTLOCATIONID = hdr.INVENTLOCATIONIDFROM
AND sf.DATAAREAID = hdr.DATAAREAID
AND sf.PARTITION = hdr.PARTITION
-- To obtain address information for Ship To Address
LEFT JOIN dbo.LogisticsPostalAddress adr WITH (NOLOCK) -- MC 05/12/2016 Added
ON adr.RECID = hdr.TOPOSTALADDRESS
AND adr.PARTITION = hdr.PARTITION
-- LEFT JOIN dbo.INVENTLOCATIONLOGISTICSLOCATION ladr1 WITH (NOLOCK) -- MC 05/12/2016 Orig
-- ON loc.recid = ladr1.inventlocation
-- AND loc.PARTITION = ladr1.PARTITION
--LEFT JOIN LogisticsPostalAddress adr WITH (NOLOCK) -- MC 05/12/2016 Orig
-- ON adr.location = ladr1.location
-- AND adr.PARTITION = ladr1.PARTITION
-- To obtain address information for Ship From Address
LEFT JOIN dbo.LogisticsPostalAddress ila WITH (NOLOCK) -- MC 05/12/2016 Added
ON ila.RECID = hdr.FROMPOSTALADDRESS
AND ila.PARTITION = hdr.PARTITION
--LEFT JOIN INVENTLOCATIONLOGISTICSLOCATION ladr WITH (NOLOCK) -- MC 05/12/2016 Orig
-- ON sf.recid = ladr.inventlocation
-- AND sf.PARTITION = ladr.PARTITION
--LEFT JOIN LogisticsPostalAddress ila WITH (NOLOCK) -- MC 05/12/2016 Orig
-- ON ila.location = ladr.location
-- AND ila.PARTITION = ladr.PARTITION
--LEFT JOIN DOCUREF d1 WITH (NOLOCK) -- MC 05/10/2016 CHECK AND TEST
-- ON hdr.RECID = d1.REFRECID
-- AND 'Note' = d1.TYPEID
-- AND 'Note/Special Instruction'= d1.NAME
-- AND d1.REFTABLEID = 366
-- AND hdr.PARTITION = d1.PARTITION
WHERE hdr.TRANSFERSTATUS = 1 -- 0 = created, 1 = shipped, 2 = received -- PUT BACK
AND lin.LINENUM > 0
AND lin.QTYSHIPPED > 0
-- Optional Bar Code Table
--LEFT JOIN dbo.InventItemBarcode bar WITH (NOLOCK)
-- ON itm.itemid = bar.itemid
-- AND itm.dataareaid = bar.dataareaid
-- AND itm.PARTITION = bar.PARTITION
-- AND bar.barcodesetupid = 'UPC'
GO