2016-11-03 67 views
0

下面是我在SQL Server Business Studio中我完成了SQL報告的查詢和我不斷收到關於此線路上Dim SelectClause as System.String = ""字符串常量必須用雙引號SQL報告結束

我嘗試了雙引號的錯誤幾件事情,但我得到重複錯誤。

任何幫助,將不勝感激。

Function getSelectClause(ByVal startDate as DateTime, ByVal endDate as DateTime) as String 
    Dim SelectClause as System.String = "" 

SelectClause ="SELECT Define.meterName, SUM(Reading.volume) AS [Total Volume], MIN(Reading.time) AS [Month] 

    FROM [Reading] INNER JOIN Define ON Reading.meterId = Define.meterId 

    WHERE (Reading.[time] >= " & startDate & " AND Reading.[time]< " & endDate & ") 
    AND Define.meterName IN ('007080') 
    AND (Reading.dataQuality = '11' OR 
        Reading.dataQuality = '10') AND (Reading.auditVersion = '0') 
    GROUP BY Define.meterName" 

    return SelectClause 
End Function 
+0

哪些DBMS您使用的? –

回答

1

SSRS使用VB作爲自定義函數的語言,它具有與SQL不同的語法。 VB不支持像SQL這樣的多行語句。您需要結束每一行" + _"開始延續,改變你的追加日期字符串:

Function getSelectClause(ByVal startDate as DateTime, ByVal endDate as DateTime) as String 
Dim SelectClause as System.String = "" 

SelectClause ="SELECT Define.meterName, SUM(Reading.volume) AS [Total Volume], " + _ 
" MIN(Reading.time) AS [Month]" + _ 
" FROM [Reading] INNER JOIN Define ON Reading.meterId = Define.meterId" + _ 
" WHERE (Reading.[time] >= '" + startDate + "' AND Reading.[time]< '" + endDate+ "')" + _ 
" AND Define.meterName IN ('007080')" + _ 
" AND (Reading.dataQuality = '11' OR " + _ 
"     Reading.dataQuality = '10') AND (Reading.auditVersion = '0') " + _ 
" GROUP BY Define.meterName" 

return SelectClause 
相關問題