У меня есть проект секундомера в C #. Я начну записывать время и сохраню его в своей базе данных в столбце «Timespan». У меня также есть столбец «Метка времени», в котором записывается дата, когда было записано время.
Теперь я хочу иметь процедуру сохранения, чтобы назначить программе дату, и я хочу, чтобы моя программа осуществляла поиск в базе данных и суммировала значения ALL
в каждом соответствующем столбце «Timespan» на данную дату , Другими словами, если я назначу ей дату, я хочу, чтобы моя программа искала все ячейки столбца «Отметка времени», и если есть одна или несколько отметок времени, равных указанной дате, я хочу, чтобы программа продолжила и проверила все связанные с ними «промежутки времени». столбцы и суммируйте их.
то, что я пробовал: (который работает, если есть только одно значение метки времени, равное данной дате. Выдает ошибку более чем для 1 значения)
Это ошибка:
Дополнительная информация: подзапрос вернул более 1 значения. Это
не допускается, когда подзапрос следует =,! =, <, <=,>,> = или когда
подзапрос используется в качестве выражения.
CREATE PROCEDURE SumOnDateReport
@QueryDate DATETIME
AS
DECLARE @total_sec INT
DECLARE @HourTime INT
DECLARE @MinTime INT
DECLARE @SecTime INT
SET @HourTime = (SELECT CONVERT(INT, SUBSTRING(TimeStringColumn, 1, 2))
FROM InfoTable
WHERE TimeStampColumn = @QueryDate)
SET @MinTime = (SELECT CONVERT(INT, SUBSTRING(TimeStringColumn, 3, 2))
FROM InfoTable
WHERE TimeStampColumn = @QueryDate)
SET @SecTime = (SELECT CONVERT(INT, SUBSTRING(TimeStringColumn, 5, 2))
FROM InfoTable
WHERE TimeStampColumn = @QueryDate)
SET @total_sec = @HourTime * 3600 + @MinTime * 60 + @SecTime
INSERT INTO InfoTable(TotalSecColumn) VALUES (null)
UPDATE InfoTable
SET TotalSecColumn = @total_sec
WHERE TimeStampColumn = @QueryDate
SELECT TotalSecColumn
FROM InfoTable
WHERE TimeStampColumn = @QueryDate
все мои столбцы таблицы являются NVARCHAR, но столбец Time stamp
- это datetime.