Так у меня есть пара таблиц структурированы похож на это:SQL Server: Сумма DateDiff из нескольких рядов
Run ([RunID], [PlayerID], [Score])
Jump ([ID], [RunID], [Time], [Type])
Есть 4 "типа" времени 2 "вверх" и 2 "вниз".
Мне нужно получить время между «вверх» и «вниз» на данном прогоне.
В принципе, во время «запуска», когда происходит «прыжок», я записываю время нарастания, а вниз записывается на соответствующей посадке (только одна пара за ход). В конце «пробега» мне нужно отобразить общее время «в воздухе», а также время за прыжок. Я думал, что лучший способ сделать это будет сбрасывать в временную таблицу со следующей структурой:
@tempJump ([RunID], [TimeUp], [TimeDown])
Тогда я бы иметь всю необходимую информацию для расчета и заполнения необходимых полей.
До сих пор я пробовал все: от простых подбора/присоединения к страшным курсорам, но у меня возникают проблемы с совпадением «ups» с соответствующими «downs» и помещением их в таблицу temp с правильным «прогоном».
Любые идеи о наилучшем способе достижения этого?
EDIT:
Пример схема:
CREATE TABLE Run
([RunID] int, [PlayerID] int, [Score] int)
;
INSERT INTO Run
([RunID], [PlayerID], [Score])
VALUES
(1, 1, 1000),
(2, 1, 1100),
(3, 1, 800),
(4, 2, 1500),
(5, 1, 900)
;
CREATE TABLE Jump
([JumpID] int, [RunID] int, [Time] datetime, [Type] int)
;
INSERT INTO Jump
([JumpID], [RunID], [Time], [Type])
VALUES
(1, 1, '2013-08-13 18:00:04', 1),
(2, 1, '2013-08-13 18:00:10', 2),
(3, 2, '2013-08-13 18:02:15', 1),
(4, 2, '2013-08-13 18:02:45', 4),
(5, 3, '2013-08-13 18:04:20', 3),
(6, 3, '2013-08-13 18:05:01', 2),
(7, 4, '2013-08-13 18:10:12', 3),
(8, 4, '2013-08-13 18:11:25', 4),
(9, 5, '2013-08-13 18:15:00', 1),
(10, 5, '2013-08-13 18:25:20', 4)
;
CREATE TABLE JumpType
([TypeID] int, [Description] varchar(12))
;
INSERT INTO JumpType
([TypeID], [Description])
VALUES
(1, 'UpPlatform'),
(2, 'DownPlatform'),
(3, 'UpBoost'),
(4, 'DownBoost')
;
Ожидаемый результат запроса будет временной таблицей аналогична:
RunID PlayerID TimeUp TimeDown
1 1 '2013-08-13 18:00:04' 2013-08-13 18:00:10
Задавая вопросы, связанные с запросом, особенно, если вы не предоставите свою версию запроса, пожалуйста, по крайней мере, помочь тем, кто хочет, чтобы помочь вам и обеспечить ваш стол (ы) схему, выборочные данные и желаемый результат на основе этого. Лучше всего потратьте одну минуту и создайте [sqlfiddle] (http://sqlfiddle.com) с вашими примерными данными. – peterm
@peterm Спасибо за указатели. Я редактировал сообщение, надеюсь, включая запрошенную вами информацию. Если нет, дайте мне знать, и я снова пересмотрю его. – mwhobrey