【发布时间】:2014-06-13 14:23:37
【问题描述】:
我正在尝试创建一个漂亮的列来显示,但我无法使用空格或连字符。我希望该列显示为
2014 年 6 月或 2014 年 6 月,但是当我尝试以正常方式插入时出现错误,因为查询已经在字符串中。
这是我遇到问题的部分:
(LEFT(DATENAME(month, leadtime),3) + " " + CONVERT(varchar, DATEPART(year, leadtime))) as leadmonth
这是上下文查询的其余部分:
set @query = 'SELECT name AS "Lead Source",' + @cols + '
from
(
SELECT d.name, COUNT(u.lead_source_id) AS totalLeads, + "["+ (LEFT(DATENAME(month, leadtime),3) + " " + CONVERT(varchar, DATEPART(year, leadtime)))+"] as leadmonth" +
FROM DI_TrackingDB.dbo.userleads u
INNER JOIN GSPremiumServices.dbo.supplier_product_lead_source_def d ON d.lead_source_id = u.lead_source_id
WHERE vend_id = 355135
AND u.lead_source_id IS NOT NULL
GROUP BY u.lead_source_id, d.name, DATENAME(month, leadtime), DATEPART(year, leadtime), Convert(varchar(7), leadtime, 126)
) x
pivot
(
max(totalLeads)
for leadmonth in (' + @cols + ')
) p '
请记住,我正在设置@query,所以我已经在一个字符串中。
任何建议表示赞赏。
【问题讨论】:
标签: sql sql-server-2005 concatenation