У меня есть простой запрос, который я часто использую, чтобы получить все весовые данные на определенной производственной линии в течение определенного периода времени.
Теперь я хочу преобразовать свой запрос в визуальный отчет студии, чтобы другие люди могли запустить отчет вместо того, чтобы спрашивать меня.
В качестве первого шага я пытаюсь запустить запрос в Management Studio, чтобы посмотреть, работает ли он.
DECLARE @ProductionLineID as int
Set @ProductionLineID = 11
DECLARE @Start as timestamp
Set @Start = '2018-06-29 19:20'
DECLARE @End as timestamp
Set @End = '2018-06-30 19:10'
SELECT [ProductionLineId]
,[Timestamp]
,[ActiveRecipe]
,[ActualWeight]
,[SetWeight]
,[SetBoxWeight]
,[SetMaxTolerance]
,[SetMinTolerance]
,[DeviationFromSetWeight]
,[AmountOfProductInBox]
,[AverageProductWeightPerBox]
,[ActualSealTemp]
,[ActualCuttingTemp]
,[ParametersChanged]
,[rejectError]
FROM [PP_Staging].[NIV].[Packaging]
where ProductionLineId = @ProductionLineID
and timestamp between @Start and @End
order by Timestamp
Это приводит к следующей ошибке
Msg 257, Level 16, State 3, Line 5
Implicit conversion from data type varchar to timestamp is not allowed. Use the CONVERT function to run this query.
Msg 257, Level 16, State 3, Line 7
Implicit conversion from data type varchar to timestamp is not allowed. Use the CONVERT function to run this query.
Итак, я попробовал функцию преобразования в соответствующей части:
DECLARE @Start as timestamp
Set @Start = convert(timestamp, '2018-06-29 19:20')
DECLARE @End as timestamp
Set @End = convert(timestamp, '2018-06-30 19:10')
Что приводит к
Msg 8115, Level 16, State 2, Line 9
Arithmetic overflow error converting expression to data type datetime.
Итак, первый вопрос: как мне ввести / установить этот параметр, чтобы я мог проверить отчет?
Я знаю, что мой код работает, если я ввожу его вручную, поэтому я в основном ищу способ преобразования этого ручного запроса в отчет с переменными. Получив это, я могу попытаться выяснить, как настроить отчет.
Пример рабочего кода:
SELECT [ProductionLineId]
,[Timestamp]
,[ActiveRecipe]
,[ActualWeight]
,[SetWeight]
,[SetBoxWeight]
,[SetMaxTolerance]
,[SetMinTolerance]
,[DeviationFromSetWeight]
,[AmountOfProductInBox]
,[AverageProductWeightPerBox]
,[ActualSealTemp]
,[ActualCuttingTemp]
,[ParametersChanged]
,[rejectError]
FROM [PP_Staging].[NIV].[Packaging]
where ProductionLineId = 11
and timestamp between '2018-06-29 19:20' and '2018-06-30 19:10'
order by Timestamp