+------+-------------------------+ | proc | endTime | +------+-------------------------+ | A | 2010/01/01 12:10:00.000 | | B | 2010/01/01 12:08:00.000 | | C | 2010/01/01 12:05:00.000 | | D | 2010/01/01 12:02:00.000 | | ...| ... |
Поэтому в основном данные, которые я тянуть из базы данных будет выглядеть, как выше, с первого столбца, имя процесса, а второй колонке времени он закончил работу. Я хочу добавить столбец THIRD, где будет отображаться время выполнения процесса.SQL - Выведите Дата Разница Колонка
В принципе, я хочу, чтобы данные вытащил, чтобы посмотреть, как это вместо:
+------+-------------------------+--------------+ | proc | endTime | runningTime | +------+-------------------------+--------------+ | A | 2010/01/01 12:10:00.000 | | (process a is not done running) | B | 2010/01/01 12:08:00.000 | 00:03:00.000 | | C | 2010/01/01 12:05:00.000 | 00:03:00.000 | | D | 2010/01/01 12:02:00.000 | 00:02:00.000 | (assume 12:00 start time) | ...| ... | ... |
И я знаю, что это было бы проще добавить startTime
колонку и из этого определения runningTime
, но у меня нет доступа к измените это, и, несмотря на то, что старые данные не будут иметь startTime для работы в любом случае.
Первое время начала процесса произвольно, но вы видите, что я получаю. Мы знаем время выполнения proc C на основе того, когда proc D закончился, и когда proc C закончил (вычтите первый из второго).
Как вычислить эту третью строку на основе разницы между «Row X Col B» и «Row X-1 Col B»?
Это похоже на результаты MySQL - какие СУБД вы используете? – Mike
Microsoft SQL Server, я думаю, я должен был сделать это ясно. – gjk
Вы отметили его как SQL, а не MySQL - это просто, что ваш пример вывода выглядел как MySQL для меня. Я не знаю, можно ли реплицировать метод MySQL, который я использовал с MS SQL, поскольку он не позволяет назначать переменные в SELECT, который также возвращает данные. – Mike