Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql . 你太棒了。你能解释一下的意思吗?然后在INVOUTDATE的星期天,你能解释一下的意思吗?我想这是没用的。很抱歉,我把它拿走了。真高兴!我终于明白问题出在哪里了!您有数千行[DOCKETNO]=NULL,但是[ORDERDATE]和[INVOUTDAT_Sql_Sql Server_Vba_Sql Server 2008_Average - Fatal编程技术网

Sql . 你太棒了。你能解释一下的意思吗?然后在INVOUTDATE的星期天,你能解释一下的意思吗?我想这是没用的。很抱歉,我把它拿走了。真高兴!我终于明白问题出在哪里了!您有数千行[DOCKETNO]=NULL,但是[ORDERDATE]和[INVOUTDAT

Sql . 你太棒了。你能解释一下的意思吗?然后在INVOUTDATE的星期天,你能解释一下的意思吗?我想这是没用的。很抱歉,我把它拿走了。真高兴!我终于明白问题出在哪里了!您有数千行[DOCKETNO]=NULL,但是[ORDERDATE]和[INVOUTDAT,sql,sql-server,vba,sql-server-2008,average,Sql,Sql Server,Vba,Sql Server 2008,Average,. 你太棒了。你能解释一下的意思吗?然后在INVOUTDATE的星期天,你能解释一下的意思吗?我想这是没用的。很抱歉,我把它拿走了。真高兴!我终于明白问题出在哪里了!您有数千行[DOCKETNO]=NULL,但是[ORDERDATE]和[INVOUTDATE]不同,因此,问题是:如何处理?它们的顺序相同吗?是否按日期对其进行分组?是的,对其进行分组也是为了提取唯一值,但您共享的qry首先提取唯一值,然后计算提前期,然后计算提前期的平均值,但每次它都给我相同的输出,即使我更改了日期,并且输出为1.


. 你太棒了。你能解释一下
的意思吗?然后在
INVOUTDATE
的星期天,你能解释一下
的意思吗?我想这是没用的。很抱歉,我把它拿走了。真高兴!我终于明白问题出在哪里了!您有数千行
[DOCKETNO]=NULL
,但是
[ORDERDATE]
[INVOUTDATE]
不同,因此,问题是:如何处理?它们的顺序相同吗?是否按日期对其进行分组?是的,对其进行分组也是为了提取唯一值,但您共享的qry首先提取唯一值,然后计算提前期,然后计算提前期的平均值,但每次它都给我相同的输出,即使我更改了日期,并且输出为1.24因此,我先用不同的卷宗号计算提前期,然后从S表中选择提前期列,然后使用从D计算该提前期的平均值。谢谢,这将在将来帮助我。你只是gr8。仅凭你的逻辑,这是可能的。我很高兴能对你有所帮助:)
SELECT
Round(AVG(CAST(
Case when CONVERT(datetime, ORDERDATE, 105) = CONVERT(datetime, INVOUTDATE, 105) THEN 0 else
Case when CONVERT(datetime, ORDERDATE, 105) + 1 = CONVERT(datetime, INVOUTDATE, 105) THEN 1 else
(DATEDIFF(dd, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105)))
-(DATEDIFF(wk, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105))*1)
-(CASE WHEN DATENAME(dw, CONVERT(datetime, ORDERDATE, 105)) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, CONVERT(datetime, INVOUTDATE, 105)) = 'Sunday' THEN 0 ELSE 0 END) end end AS FLOAT)),4) AS LEADTIME FROM DSORDERSTATUS
WHERE ORDERTYPE <> 'Exchange Order' 
AND CONVERT(datetime, ORDERDATE, 105) between '20170801' and '20170831' 
AND CONVERT(datetime, INVOUTDATE, 105) IS NOT NULL
SELECT DISTINCT DOCKETNO,
Case when CONVERT(datetime, ORDERDATE, 105) = CONVERT(datetime, INVOUTDATE, 105) THEN 0 else
Case when CONVERT(datetime, ORDERDATE, 105) + 1 = CONVERT(datetime, INVOUTDATE, 105) THEN 1 else
(DATEDIFF(dd, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105)))
-(DATEDIFF(wk, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105))*1)
-(CASE WHEN DATENAME(dw, CONVERT(datetime, ORDERDATE, 105)) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, CONVERT(datetime, INVOUTDATE, 105)) = 'Sunday' THEN 0 ELSE 0 END) end end AS LEADTIME FROM DSORDERSTATUS
WHERE ORDERTYPE <> 'Exchange Order' 
AND CONVERT(datetime, ORDERDATE, 105) between '20170801' and '20170831' 
AND CONVERT(datetime, INVOUTDATE, 105) IS NOT NULL
WHERE   ORDERTYPE <> 'Exchange Order' 
AND CONVERT(date, ORDERDATE, 105) between '20170801' and '20170831' 
AND CONVERT(date, INVOUTDATE, 105) IS NOT NULL
;with
S AS (      
    select DOCKETNO, ORDERDATE, INVOUTDATE, COUNT(*) n
    from DSORDERSTATUS where ORDERTYPE <> 'Exchange Order' 
    group by DOCKETNO, ORDERDATE, INVOUTDATE
),
D as (
    select [DOCKETNO], [ORDERDATE], [INVOUTDATE],
        DATEDIFF(dd, CONVERT(date, [ORDERDATE], 105), CONVERT(date, [INVOUTDATE], 105)) dd,
        DATEDIFF(wk, CONVERT(date, [ORDERDATE], 105), CONVERT(date, [INVOUTDATE], 105)) wk,
        CASE WHEN DATEPART(dw, CONVERT(datetime, ORDERDATE, 105)) = 7 THEN 1 ELSE 0 END IsSundayOrd,
        CASE WHEN DATEPART(dw, CONVERT(datetime, INVOUTDATE, 105)) = 7 THEN 1 ELSE 0 END IsSundayInv
    from S
)
select avg(cast(dd - case when dd>1 then (wk +  IsSundayOrd + IsSundayInv) else 0 end as float)) leadtime
from D
where CONVERT(date, ORDERDATE, 105) between '20170801' and '20170831' 
    AND CONVERT(date, INVOUTDATE, 105) IS NOT NULL
;with
S AS (
SELECT DISTINCT DOCKETNO,
Case when CONVERT(datetime, ORDERDATE, 105) = CONVERT(datetime, INVOUTDATE, 105) THEN 0 else
Case when CONVERT(datetime, ORDERDATE, 105) + 1 = CONVERT(datetime, INVOUTDATE, 105) THEN 1 else
(DATEDIFF(dd, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105)))
-(DATEDIFF(wk, CONVERT(datetime, ORDERDATE, 105), CONVERT(datetime, INVOUTDATE, 105))*1)
-(CASE WHEN DATENAME(dw, CONVERT(datetime, ORDERDATE, 105)) = 'Sunday' THEN 1 ELSE 0 END)end end AS LEADTIME FROM DSORDERSTATUS
WHERE ORDERTYPE <> 'Exchange Order' 
AND CONVERT(datetime, ORDERDATE, 105) between '20170801' and '20170808' 
AND CONVERT(datetime, INVOUTDATE, 105) IS NOT NULL
),
D AS (
SELECT DOCKETNO, LEADTIME FROM S
)
SELECT AVG(CAST(LEADTIME AS FLOAT)) FROM D