【发布时间】:2014-04-05 21:21:09
【问题描述】:
我不知道为什么这个该死的脚本不起作用请帮忙!!!
我只想使用我的日期参数获取信息。我得到的只是没有提取信息的列。
ALTER PROCEDURE [dbo].[sp_GerberCutter]
-- Add the parameters for the stored procedure here
@startdate Date,
@enddate Date,
@designid varchar (7)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT DISTINCT
SL.SALESID,
SL.DESIGNID,
DS.NAME as [DESIGN NAME],
CAST(ceiling(SL.MMI_WIDTHDIMENSION/12) as nvarchar(5)) + 'x' + CAST(ceiling(SL.MMI_LENGTHDIMENSION/12) as nvarchar(5)) AS SIZE,
SL.QTYORDERED as QTY,
DATEADD(ss,CCS.MMI_CONFIRMTIME, CCS.CONFIRMDATE) as ORDERCONFIRMED,
(SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.NOTES like '%CONVERT%PRODUCTION%') AS CUTFILE,
(SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%') AS CARPETCUT,
DATEDIFF(hour, (DATEADD(ss,CCS.MMI_CONFIRMTIME, CCS.CONFIRMDATE)), (SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%')) as HOURSTOCOMPLETE,
Case
When (SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%') Between DateAdd(hh, 07, @startdate) And DateAdd(hh, 14, DateAdd(mi, 59, @enddate)) Then 'S1'
When (SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%') Between DateAdd(hh, 15, @startdate) And DateAdd(hh, 22, DateAdd(mi, 59, @enddate)) Then 'S2'
When (SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%') Between DateAdd(hh, 23, @startdate) And DateAdd(hh, 30, DateAdd(mi, 59, @enddate)) Then 'S3'
End As [CARPETCUT SHIFT]
FROM DESIGNS.DBO.DesignLog DL
INNER JOIN AXLIVESALES.DBO.SALESLINE SL
ON SL.DESIGNID=DL.DESIGNNBR AND SL.RECID=DL.AxRecordId
INNER JOIN DESIGNS.DBO.DESIGNS DS
ON DL.DESIGNNBR=DS.NBR
INNER JOIN AXLIVESALES.DBO.CUSTCONFIRMSALESLINK CCS
ON CCS.SALESID=SL.SALESID AND CCS.DATAAREAID=SL.DATAAREAID
INNER JOIN INVENTDIM ID
ON SL.INVENTDIMID=ID.INVENTDIMID AND ID.DATAAREAID='V02'
WHERE
SL.DESIGNID = @designid and DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%' and SL.DATAAREAID='MMI'and (SELECT TOP 1 DL.Timestamp FROM DESIGNS.DBO.DesignLog DL WHERE DL.DESIGNNBR=SL.DESIGNID AND DL.DESIGNER='MTR' and DL.ACTION='P' and DL.NOTES like '%INLAID%') = @enddate
ORDER BY CARPETCUT DESC;
END
【问题讨论】:
-
你的数据库结构是什么?它还指的是 DESIGNS 数据库,只是为了确定您想对 2 个数据库或 1 个数据库进行查询,如果您是在 DESIGNS DB 或另一个数据库上创建过程?
-
我想查询 1 个数据库。我只是加入来自其他数据库的列。至于结构,我不完全确定,因为我正在帮助一个朋友
标签: sql-server tsql datetime parameters