2016-11-03 5 views
0

Ниже приводится запрос для отчета SQL, что я завершаю в SQL Server Business Studio, и я получаю сообщение об ошибке о двойных кавычках на этой линии 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

Какого СУБД вы используете? –

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^