EquipmentUseId CollectionPointId EmployeeNum ShopOrder StartDateTime
366 69 9999 999999 4/26/13 3:29 PM
373 69 4878 107321 4/26/13 10:19 PM
385 69 4971 107321 4/27/13 7:35 AM
393 69 4179 107325 4/30/13 7:24 AM
394 69 4179 107325 4/30/13 7:38 AM
395 69 4179 107325 4/30/13 10:28 AM
398 69 4179 107325 4/30/13 2:41 PM
399 69 9999 999999 4/30/13 2:43 PM
400 69 9999 999999 4/30/13 2:46 PM
Учитывая приведенную выше таблицу, у меня осталась уникальная проблема, и ее описание может быть столь же сложным. Для каждого ShopOrder для каждого сотрудника есть StartDateTime, но нет StopDateTime, это по дизайну. Однако мне нужно рассчитать разницу во времени между StartDateTime одного ShopOrder и StartDateTime следующего ShopOrder. Пример: SO # 999999 начинается с 15:29 по 4/26 Employee 9999, затем новый SO # 107321 запускается в 22:19 4/26 сотрудниками 4878. Мне нужно будет вычислить разницу между 4/26/2013 22:19 и 26.04.2013 15:29. Это дало бы мне дату выхода для SO # 9999, но на самом деле это необходимо для вторичного процесса. Пока я просто должен быть в состоянии получить время. Одно отключение происходит, если SO # совпадают, тогда я бы использовал только первый StartDateTime и первый StartDateTime следующего SO #. Извините, это так долго, я даже не уверен, что я объяснил что-нибудь в этот момент.Расчет разницы во времени из нескольких строк
Прошу вас, пожалуйста, на меня ... это был долгий день.
Отредактировано для вывода на 08/19/2013:
После обдумывал его на во время уик-энда, я решил, что будет лучше использовать EndDateTime, как этот запрос только первый шаг в общее приложение/отчет.
Кроме того, EmployeeNum больше не относится к этой части приложения.
Вот как это должно выглядеть (EquipmentUseID PK, CollectionPointID всегда 69, поэтому их не нужно отображать на выходе )?
ShopOrder StartDateTime EndDateTime 999999 4/26/13 3:29 PM 4/26/13 10:19 PM 107321 4/26/13 10:19 PM 4/30/13 7:24 AM 107325 4/30/13 7:24 AM 4/30/13 2:43 PM 999999 4/30/13 2:43 PM <next SO# StartDateTime>
Резюмируя эту таблицу, я нужен SO #, в StartDateTime за SO # (уже в таблице), и в EndDateTime, которая является на самом деле StartDateTime для следующего ТАК#. Надеюсь, это очистит , извините за путаницу.
использовать вложенное представление, где вы впервые получить максимальную дату каждого заказа магазина, а затем посмотреть на себя функции LAG и петлю на тех, кто делает время дифф – Randy
@randy Нет лаг в SQL 2005 – Paparazzi
@ ctmcklowe96 Вы могли бы предоставить желаемый результат для данного ввода? –