0
SELECT @sql='

select 
    *
from (
    select ''Ongoing'' AS Ongoing,
    Coalesce(COUNT(project),0) AS project, Coalesce(COUNT(year(u.PlannedStartDate)),0) as [y]
    from Projects u  WHERE 
    u.actualstartdate IS  NULL 
    AND u.Startdate < ''+GETDATE()+''
    AND ID ='''+@ID+'''  

  ) Data
PIVOT (
  COUNT(project)
  FOR [y]
  IN (
    ' + @Years + '
  )
) PivotTable
'

ここでcurdateを渡したいのですが、機能していません。これは、GETDATE()の値が文字列に含まれていないためです。

4

3 に答える 3

2

AND u.Startdate < ''+GETDATE()+''ANDに変更u.Startdate < GETDATE()

于 2012-07-11T14:37:54.273 に答える
1

その周りの引用符を削除するだけだと思います

SELECT @sql='

select * from ( select ''Ongoing'' AS Ongoing, Coalesce(COUNT(project),0) AS project,
Coalesce(COUNT(year(u.PlannedStartDate)),0) as [y] from Projects u 
WHERE u.actualstartdate IS   NULL AND u.Startdate < GETDATE() AND ID ='''+@ID+'''

) Data PIVOT ( COUNT(project) FOR [y] IN ( ' + @Years + ' ) ) PivotTable '
于 2012-07-11T14:39:28.130 に答える
0

GETDATE()を次のようにvarcharにキャストしてみてください:CAST(GETDATE()AS varchar)

于 2012-07-11T14:37:50.460 に答える