Sql server 我需要链接表dbo.RMY_LEAD_TIME,并获取var项的.stocklevel和.LeadTime_天
我想我需要一个嵌套选择来捕获RMY_LEAD_TIME的信息。此功能将获取提前期天数或库存水平 我可以复制此跳过的函数。我写这篇文章是为了获取项目编号,现在我想修改它以从另一个表中获取相应的信息。物料编号与另一张表上的物料编号匹配Sql server 我需要链接表dbo.RMY_LEAD_TIME,并获取var项的.stocklevel和.LeadTime_天,sql-server,Sql Server,我想我需要一个嵌套选择来捕获RMY_LEAD_TIME的信息。此功能将获取提前期天数或库存水平 我可以复制此跳过的函数。我写这篇文章是为了获取项目编号,现在我想修改它以从另一个表中获取相应的信息。物料编号与另一张表上的物料编号匹配 SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE FUNCTION [dbo].[udf_BuildPartNumber] (@storeNo varchar(5), @shipDate d
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE FUNCTION [dbo].[udf_BuildPartNumber]
(@storeNo varchar(5), @shipDate datetime, @carNo varchar(50))
RETURNS varchar(2000)
AS
BEGIN
DECLARE @items varchar(2000)
SELECT
@items = ISNULL(@items + '^','') + im.ITEM_NUMBER
FROM
dbo.TRANSFERS t
LEFT OUTER JOIN
MatDump.dbo.ITM_MSTR im ON SUBSTRING(t.cic, 1,9) + '0' = im.CIC
INNER JOIN
dbo.TRANSFER_CARS tc ON t.TRANSFER_ID = tc.TRANSFER_ID
WHERE
t.date_shipped = @shipDate
AND t.TO_STORE_ID = @storeNo
AND tc.CAR_NUM = @carNo
ORDER BY
t.SEQ_OR_ID_NUM
RETURN @items END
我调用这两个函数从RMY_LEAD_时间表返回Stocklevel和LeadTime。肖恩·兰格,谢谢你的建设性批评。当我试图完善我的问题时,我能够更好地自己做研究并得到答案。再次感谢。这里有什么问题?似乎您有一个函数,出于某种原因您想更改它,但正如发布的消息所示,您在此处尝试执行的操作一点也不清楚。此函数返回ITEM_NUMBER,我需要使用ITEM_NUMBER在尚未使用的表上交叉引用Material_NUMBER。当我尝试编写新的select时,我得到一个错误嗯…我不知道你的表结构是什么样的,我甚至不知道你试图使用的是什么表,我不知道你得到的错误消息是什么。现在,你的问题就像把你的车带到修理厂,说你想对它进行改装,但没有提供任何你想要的细节。除非您能提供一些详细信息,否则我们无法提供帮助。表1 RMY\U交付周期有物料编号、库存级别。表2传输有CIC参考号、序列号或ID号、到存储号、发货日期、传输号、表3传输号、车有传输号、车号、表4 ITM主控器有项目号,该功能可以正确工作,只要给我汽车库存中每个项目的相应零件号。我想尝试获取该零件号,并从RMY_LEAD_TIME获得每个项目的重新进货水平。通过将@partNum与RMY_LEAD_TIME.MaterialNumber进行比较,我可以获得该项目的重新进货水平。
ALTER FUNCTION [dbo].[Udf_buildleadtime] (@storeNo VARCHAR(5),
@shipDate DATETIME,
@carNo VARCHAR(50))
returns VARCHAR(2000)
AS
BEGIN
DECLARE @ldTm VARCHAR(2000)
DECLARE @partNum VARCHAR(2000)
SELECT @ldTm = Isnull(@ldTm + '^', '') + leadtime_days
FROM dbo.transfers t
LEFT OUTER JOIN matdump.dbo.itm_mstr im
ON Substring(t.cic, 1, 9) + '0' = im.cic
INNER JOIN dbo.transfer_cars tc
ON t.transfer_id = tc.transfer_id
LEFT JOIN dbo.rmy_lead_time rlt
ON rlt.material_number = im.item_number + '-' +
im.condition_code
WHERE t.date_shipped = @shipDate
AND t.to_store_id = @storeNo
AND tc.car_num = @carNo
ORDER BY t.seq_or_id_num
RETURN @ldTm
END
CREATE FUNCTION [dbo].[Udf_buildleadtime] (@storeNo VARCHAR(5),
@shipDate DATETIME,
@carNo VARCHAR(50))
returns VARCHAR(2000)
AS
BEGIN
DECLARE @ldTm VARCHAR(2000)
DECLARE @partNum VARCHAR(2000)
SELECT @ldTm = Isnull(@ldTm + '^', '') + leadtime_days
FROM dbo.transfers t
LEFT OUTER JOIN matdump.dbo.itm_mstr im
ON Substring(t.cic, 1, 9) + '0' = im.cic
INNER JOIN dbo.transfer_cars tc
ON t.transfer_id = tc.transfer_id
LEFT JOIN dbo.rmy_lead_time rlt
ON rlt.material_number = im.item_number + '-' +
im.condition_code
WHERE t.date_shipped = @shipDate
AND t.to_store_id = @storeNo
AND tc.car_num = @carNo
ORDER BY t.seq_or_id_num
RETURN @ldTm
END
SELECT CASE tc.istruck
WHEN 0 THEN tc.car_num
ELSE tc.car_num + ' (Truck)'
END
AS CarNo,
t.to_store_id
AS ToStore,
dbo.Udf_builditemlistbystore(t.to_store_id, t.date_shipped, tc.car_num)
AS
Contents,
(SELECT Isnull(Substring(e.first_name, 1, 1), '')
+ ' '
+ Isnull(Substring(e.middle_name, 1, 1), '')
+ ' ' + e.last_name
FROM prodgang.dbo.stores s
LEFT OUTER JOIN chris.dbo.employee e
ON s.jobcode = e.jobcode
WHERE s.storeno = t.to_store_id
AND s.division <> 25)
AS Consignee,
(SELECT s.location
FROM prodgang.dbo.stores s
WHERE s.storeno = t.to_store_id
AND s.division <> 25)
AS Destination,
dbo.Udf_buildstockinglevel(t.to_store_id, t.date_shipped, tc.car_num)
AS
StockingLevel,
dbo.Udf_buildleadtime(t.to_store_id, t.date_shipped, tc.car_num)
AS LeadTime
FROM dbo.transfers t
LEFT OUTER JOIN dbo.transfer_cars tc
ON t.transfer_id = tc.transfer_id
WHERE t.date_shipped = @shipDate
AND t.qty_shipped <> 0
ORDER BY t.to_store_id,
t.seq_or_id_num