2017-04-12 71 views
-1

更新: 我想通了,对于之前缺乏细节感到抱歉。我必须将日期转换为2017年12月4日显示,而不是原来的20170412,然后每天分解。如何从订单日期获取当前日期以获得预期日期老化数

SELECT 
    PHPICK00.PHORDT "Days Aging", 
    COUNT(DISTINCT(PHPICK00.PHPKTN)) "Total Orders" 
    FROM 
    PHPICK00 
    WHERE 
    PHPICK00.PHORDT>= 0 
    GROUP BY 
    PHPICK00.PHORDT SELECT COUNT(PHPCTL) "Orders",         
    CASE When              
    SUBSTR(DIGITS(PHSTDT),6,2)||'/'||              
    SUBSTR(DIGITS(PHSTDT),8,2)||'/'||              
    SUBSTR(DIGITS(PHSTDT),2,4) = current date -1 days then '1 Day' 
    when               
    SUBSTR(DIGITS(PHSTDT),6,2)||'/'||              
    SUBSTR(DIGITS(PHSTDT),8,2)||'/'||              
    SUBSTR(DIGITS(PHSTDT),2,4) = current date -2 days then '2 Day' 
    when               
    SUBSTR(DIGITS(PHSTDT),6,2)||'/'||              
    SUBSTR(DIGITS(PHSTDT),8,2)||'/'||                
    SUBSTR(DIGITS(PHSTDT),2,4) = current date -3 days then '3 Day'  
    when                 
    SUBSTR(DIGITS(PHSTDT),6,2)||'/'||                
    SUBSTR(DIGITS(PHSTDT),8,2)||'/'||                
    SUBSTR(DIGITS(PHSTDT),2,4) = current date -3 days then '4+ Days' 
    else 'Ship Start Date Not Yet Met' END AS "Days Aging"          

    FROM PHPICK00              
    WHERE PHPSTF < '90' AND PHSTDT > 0 

我想有return语句显示天数顺序老化。所有我能够检索的日期为通用格式“20170412”,而我希望它输出“1”,“2”,“3”等。

我对SQL很陌生!希望这是一个简单的解决方案。

SELECT 
    PHPICK00.PHORDT "Order Date", 
    COUNT(DISTINCT(PHPICK00.PHPKTN)) "Total Orders" 
FROM PHPICK00 
WHERE PHPICK00.PHORDT = PHPICK00.PHORDT - GETDATE() 
GROUP BY PHPICK00.PHORDT 
ORDER BY PHPICK00.PHORDT DESC 
+1

日期函数不同,每个RDBMS所以我们需要知道你正在使用的DATABSE(MySQL的是不是Postgres的不是SQL服务器) – JNevill

+2

请不要使用不适用于您的问题标签。我删除了数据库标记,因为它不清楚你实际使用了哪一个。请添加*的标签*您实际使用的数据库 –

+0

基于'GETDATE()'我猜SQL Server。 amirite? – Hogan

回答

0

我想你想要这个 - 有点难以告诉寿。可能希望在你的问题中更清楚。

DATEDIFF(day,PHPICK00.PHORDT,GETDATE())