Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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 正确排序日期列_Sql_Reporting Services - Fatal编程技术网

Sql 正确排序日期列

Sql 正确排序日期列,sql,reporting-services,Sql,Reporting Services,下面的查询返回我的数据,如下面的示例所示 Nov 1 2017 Nov 21 2017 Oct 29 2017 Oct 30 2017 我希望我的数据按原样返回 Oct 29 2017 Oct 30 2017 Nov 1 2017 Nov 21 2017 我在日期值上尝试了orderby子句,但没有成功 这是我的完整查询,我想在其中合并我的排序功能 SELECT DISTINCT CONVERT(varchar(11),E1_INTEGRATE.DBO.ConvertJulian

下面的查询返回我的数据,如下面的示例所示

Nov 1 2017
Nov 21 2017
Oct 29 2017
Oct 30 2017
我希望我的数据按原样返回

Oct 29 2017
Oct 30 2017
Nov 1 2017
Nov 21 2017
我在日期值上尝试了orderby子句,但没有成功

这是我的完整查询,我想在其中合并我的排序功能

SELECT  
    DISTINCT CONVERT(varchar(11),E1_INTEGRATE.DBO.ConvertJulianDateToStd(WLDRQJ)) AS 'Due date', 
    WLDOCO, 
    E1_INTEGRATE.DBO.ConvertJulianDateToStd(PDPDDJ), 
    PDTORG as 'Buyer', 
    PDDOCO, 
    'Supplier' = 
                 (SELECT 
                     ABALPH 
                  FROM ps_prod.proddta.F0101 
                  WHERE PHAN8 = ABAN8
                  ), 
    WLKITL

FROM ps_prod.proddta.F3112 -- Work Order Routing

INNER JOIN
    ps_prod.proddta.F4311 -- Purchase order detail
      ON    
        substring(WLRORN, patindex('%[^0]%',WLRORN), 8) = CAST(PDDOCO as VARCHAR(8)) 
        AND WLRKCO = PDKCOO 

INNER JOIN
    ps_prod.proddta.F4301
     ON
       PDDOCO = PHDOCO

INNER JOIN
    ps_prod.proddta.F57JTDT f1
     ON
      F4311.PDCNID = f1.JDDOCO
      AND f1.JDZZCAT5 = 30
      AND f1.JDZZFN5 = 20
      AND f1.JDZZFLDV = 'Yes'

INNER JOIN
   ps_prod.proddta.F57JTDT f2
    ON
     F4311.PDCNID = f2.JDDOCO
     AND f2.JDZZCAT5 = 30
     AND f2.JDZZFN5 = 70
     AND f2.JDZZFLDV = 'Yes'

WHERE
    DATEDIFF(DAY,GETDATE(),E1_INTEGRATE.DBO.ConvertJulianDateToStd(WLDRQJ) ) < 30
    AND RTRIM(WLRORN) > ' '
    AND E1_INTEGRATE.DBO.ConvertJulianDateToStd(WLDRQJ) > CONVERT(datetime,CONVERT(varchar(10),DATEADD(dd, -1, GETDATE()),101))
    AND PDAEXP = 0  -- Extended Price
    AND PDUOPN > 0  -- Unit open quantity
    AND PDNXTR = '400'

在查询结束时尝试以下操作:

ORDER BY CONVERT(varchar, DueDate, 112)
更新:

实际上,DueDate不是您要排序依据的字段,它只是查询末尾的别名,当我查看您的查询时,JulianDate似乎可以排序依据,因此您也可以尝试以下方法:

ORDER BY WLDRQJ
挑选
不同的REPLACECONVERTvarchar12,E1_INTEGRATE.DBO.ConvertJulianDateToStdWLDRQJ,107',',作为“到期日”

有问题的字段的名称和数据类型是什么?我在查询结束时尝试了这个方法,但没有成功。。。order by convertdate,'Due date'是我要按其排序的字段的名称。…Due date是一个函数结果。数据库字段的名称和数据类型是什么?运气不好。。。如果指定了select DISTINCT,则ORDER BY项目必须出现在选择列表中。这是否适合您:删除DISTINCT关键字并按select中的每列进行分组?因此,您可以按任意顺序订购…@Noxthron,与GROUP by和SELECT DISTINCT的规则相同。欢迎您,如果它解决了您的问题,请接受作为答案。这并不能回答问题