Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/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 ],9月,[10月], [11月],[12月]) )p 订购人 案例日期名称(月,getdate()) “一月”是什么时候,然后是一月 什么时候是二月,然后是二月 “三月”是什么时候 “四月”是什么时候,然后是四月 “五月”是什么时候 “六月”是什么时候 _Sql_Sql Server 2008 - Fatal编程技术网

Sql ],9月,[10月], [11月],[12月]) )p 订购人 案例日期名称(月,getdate()) “一月”是什么时候,然后是一月 什么时候是二月,然后是二月 “三月”是什么时候 “四月”是什么时候,然后是四月 “五月”是什么时候 “六月”是什么时候

Sql ],9月,[10月], [11月],[12月]) )p 订购人 案例日期名称(月,getdate()) “一月”是什么时候,然后是一月 什么时候是二月,然后是二月 “三月”是什么时候 “四月”是什么时候,然后是四月 “五月”是什么时候 “六月”是什么时候 ,sql,sql-server-2008,Sql,Sql Server 2008,],9月,[10月], [11月],[12月]) )p 订购人 案例日期名称(月,getdate()) “一月”是什么时候,然后是一月 什么时候是二月,然后是二月 “三月”是什么时候 “四月”是什么时候,然后是四月 “五月”是什么时候 “六月”是什么时候 “七月”是什么时候 “八月”是什么时候 什么时候是九月,然后是九月 “十月”是什么时候,然后是十月 “十一月”是什么时候,然后是十一月 “十二月”是什么时候,然后是十二月 结束描述 您想点什么?您正在尝试更改列的位置吗?(因此,在3月份,列以3

],9月,[10月], [11月],[12月]) )p 订购人 案例日期名称(月,getdate()) “一月”是什么时候,然后是一月 什么时候是二月,然后是二月 “三月”是什么时候 “四月”是什么时候,然后是四月 “五月”是什么时候 “六月”是什么时候 “七月”是什么时候 “八月”是什么时候 什么时候是九月,然后是九月 “十月”是什么时候,然后是十月 “十一月”是什么时候,然后是十一月 “十二月”是什么时候,然后是十二月 结束描述
您想点什么?您正在尝试更改列的位置吗?(因此,在3月份,列以3月份开始,以2月份结束?)或者您正在尝试对数据进行排序,以便在3月份,数据按3月份列中的值排序?还是你在努力实现其他目标?也许你们想要的输出的一个例子会有所帮助?大家好,很抱歉回复晚了,我被召集到一个会议上。感谢您的所有回复,我一定会查看数据透视表路线并向您报告。事实上,有人发布了一个答案,它使用我的查询工作,但它不再在这里??。我会看看下面的数据透视表,看起来干净多了。我会回来报告,并勾选正确答案@dems我试图对数据而不是列进行排序。
DATENAME(month,getdate())
是一个常量。此函数的每一行数据都有相同的结果。这意味着它根本不会改变数据的顺序。。。除非我遗漏了什么?他们正试图根据
GetDate()
的结果将列更改为
orderby
,因此如果今天执行,您将
orderby
八月列,但如果您在九月执行,它将
orderby
该列。这似乎是他们试图做的,除非我遗漏了什么-这就是当前的
orderby
正在做的事情。你测试过这个吗?根据我的经验,此语句将根据执行时间按不同字段排序<例如,代码>按日期名称排序(月份,myField),不会按不同的列排序。今天运行它时,它只需按'August'排序。而不是按表格排序。August,与按'this is a string'排序没有什么不同。。@Dems您是对的,现在太早了。修正了,谢谢你指出这一点。
SELECT txt_web_name, 
SUM(CASE WHEN MONTH(dte_pay_paydate) = 1 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'January',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 2 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'February',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 3 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'March',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 4 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'April',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 5 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'May',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 6 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'June',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 7 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'July',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 8 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'August',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 9 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'September',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 10 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'October',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 11 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'November',
SUM(CASE WHEN MONTH(dte_pay_paydate) = 12 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS 'December'
FROM tbl_payment
INNER JOIN dbo.tbl_orders ON (uid_pay_orderid = uid_orders)
INNER JOIN dbo.tbl_websites ON (uid_order_webid = uid_websites)
WHERE dbo.tbl_payment.bit_pay_paid = 1
GROUP BY txt_web_name
ORDER BY 
        CASE 

         WHEN MONTH(GETDATE()) = 1 THEN 'January'
         WHEN MONTH(GETDATE()) = 2 THEN 'February'
         WHEN MONTH(GETDATE()) = 3 THEN 'March'
         WHEN MONTH(GETDATE()) = 4 THEN 'April'
         WHEN MONTH(GETDATE()) = 5 THEN 'May'
         WHEN MONTH(GETDATE()) = 6 THEN 'June'
         WHEN MONTH(GETDATE()) = 7 THEN 'July'
         WHEN MONTH(GETDATE()) = 8 THEN 'August'
         WHEN MONTH(GETDATE()) = 9 THEN 'September'
         WHEN MONTH(GETDATE()) = 10 THEN 'October'
         WHEN MONTH(GETDATE()) = 11 THEN 'November'
         WHEN MONTH(GETDATE()) = 12 THEN 'December' 

         END  DESC
 ORDER BY
     CASE MONTH(GETDATE()) 
     WHEN 1 THEN January
     WHEN 2 THEN February
     ...
     END
select * 
from 
(
    select txt_web_name, mon_pay_amount, datename(month,dte_pay_paydate) as mpd 
    FROM tbl_payment  
    INNER JOIN dbo.tbl_orders ON (uid_pay_orderid = uid_orders)  
    INNER JOIN dbo.tbl_websites ON (uid_order_webid = uid_websites)  
    WHERE dbo.tbl_payment.bit_pay_paid = 1  
    AND txt_pay_type<>'credit'
) t
pivot
(
    sum(mon_pay_amount) for mpd in 
    ([January],[February],[March],[April],[May],[June],[July],[August], .....)
)p
order by
   case MONTH(getdate())
       when 1 then [January]
       when 2 then [February]
        ...
   end
SELECT txt_web_name, 
SUM(CASE WHEN MONTH(dte_pay_paydate) = 1 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS January,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 2 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS February,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 3 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS March,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 4 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS April,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 5 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS May,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 6 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS June,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 7 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS July,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 8 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS August,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 9 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS September,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 10 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS October,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 11 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS November,
SUM(CASE WHEN MONTH(dte_pay_paydate) = 12 AND txt_pay_type <> 'Credit' THEN mon_pay_amount ELSE 0 END) AS December
FROM tbl_payment
INNER JOIN dbo.tbl_orders ON (uid_pay_orderid = uid_orders)
INNER JOIN dbo.tbl_websites ON (uid_order_webid = uid_websites)
WHERE dbo.tbl_payment.bit_pay_paid = 1
GROUP BY txt_web_name
ORDER BY 
        CASE MONTH(GETDATE()) 
         WHEN 1 THEN January
         WHEN 2 THEN February
         WHEN 3 THEN March
         WHEN 4 THEN April
         WHEN 5 THEN May
         WHEN 6 THEN June
         WHEN 7 THEN July
         WHEN 8 THEN August
         WHEN 9 THEN September
         WHEN 10 THEN October
         WHEN 11 THEN November
         WHEN 12 THEN December 

         END  DESC
SELECT *
FROM 
(
  SELECT txt_web_name, 
    txt_pay_type, 
    DATENAME(month, dte_pay_paydate) mth,  -- get the month name instead of the number
    mon_pay_amount
  FROM tbl_payment
  INNER JOIN dbo.tbl_orders 
    ON (uid_pay_orderid = uid_orders)
  INNER JOIN dbo.tbl_websites 
    ON (uid_order_webid = uid_websites)
  WHERE dbo.tbl_payment.bit_pay_paid = 1
    and txt_pay_type <> 'Credit'
) x
PIVOT
(
  sum(mon_pay_amount)
  for mth in([January], [February], [March], [April], [May],
            [June], [July], [August], September, [October], 
            [November], [December])
)p
order by 
  case datename(month, getdate()) 
    when 'January' then January 
    when 'February' then February  
    when 'March' then March  
    when 'April' then April  
    when 'May' then May  
    when 'June' then June  
    when 'July' then July  
    when 'August' then August  
    when 'September' then September  
    when 'October' then October  
    when 'November' then November  
    when 'December' then December  
  END Desc