我有以下SQL语句:
Select max(id) as id, device_id, max(current_value) as value,
RoundTimeUp(Store_time,15) as Displaydate
from table
group by device_id, RoundTimeUp(Store_time,15)
RoundTimeUp是将[store_time]舍入到下一个四分之一小时的函数,即14:04 - > 14:15,19:43 - > 19:45等。
当我尝试创建相同的查询时,数据工厂中的增量加载, 我将sample语句修改为此语句:
$$Text.Format('select max([id]) as [id], device_id,
max([current_value]) as value, [dbo].[RoundtimeUp](Store_time,15) as
DisplayDate from table
where store_time >= \'{0:yyyy-MM-dd HH:mm}\' AND
store_time < \'{1:yyyy-MM-dd HH:mm}\'
group by device_id, RoundtimeUp(Store_time,15)', WindowStart, WindowEnd)
然而,我收到一个错误:
System.InvalidOperationException:无效令牌:(Sql-statement),位于13,位于Oopc.Generated.Tokenizer 2.NextToken()位于Microsoft.DataPipeline的Oopc.Generated.ShiftReduceParser 4.Parse(ITokenizer 1 tokenizer)。 MacroLanguage.MacroRuntime.Evaluate(String expression,IDictionary 2 localVariables)。
如果我现在在SQL代码中输入了任何拼写错误,那么SQL语句在没有宏表达式的情况下工作得很好。只要宏表达式结束,常规select语句也可以工作。 如何使此声明生效?我是否需要在组中添加第二个$$文本?