我有一个带有sql server后端的vb6应用程序。这是我的以下代码:
cn.Execute "insert into abschart ([t_leave],[cu_month],[last_month],[last_year_month]) SELECT * FROM" _
& "(SELECT no_d_sick,period_e,'sick' as t_leave from foxmil...transac)" _
& "AS n PIVOT (sum(no_d_sick) FOR period_e IN (['" & txtend & "'],['" & lmon & "'],['" & lymon & "'])) AS pvt Union SELECT * FROM" _
& "(SELECT no_d_abs,period_e,'Absence' as t_leave from foxmil...transac)" _
& "AS n PIVOT (sum(no_d_abs) FOR period_e IN (['" & txtend & "'],['" & lmon & "'],['" & lymon & "'])) AS pvt".
我收到的“txtend”语法错误不正确.txtend是日期类型。
答案 0 :(得分:2)
这是您在替换代码中获得的额外引号。您说([20-Nov-11])
有效,但(['" & txtend & "'])
没有,但请注意第二个示例会产生(['20-Nov-11'])
。
我同意其他人的意见,避免字符串连接会更好(尽管我认为你不能使用数据条款)。
此外,最好使用明确的日期格式,例如YYYYMMDD
,例如今天将是20111129
。