4 Replies Latest reply: May 19, 2017 1:44 AM by GIORGI ZHIZHIASHVILI RSS

    Как получить предыдущее, текущее и последующее значение из таблицы?

    GIORGI ZHIZHIASHVILI

      Кто может помочь? Проблема такая: есть таблица с данными прохода сотрудников на проход. Данные: личный номер сотрудника, время прохода турникета, направление (вошел или вышёл). В день 10-15 тысяч записей. Задача: надо сгрупировать по номеру сотрудника, по отсортировать времени и к каждой записи даты и времени входа приписать следующую запись выхода, и исходя из этих двух данных приписать время пребывания на объекте.

      Благодарю за внимание!

      Кто может помочь? Проблема такая: есть таблица с данными прохода сотрудников на проход. Данные: личный номер сотрудника, время прохода турникета, направление (вошел или вышёл). В день 10-15 тысяч записей. Задача: надо сгрупировать по номеру сотрудника, по отсортировать времени и к каждой записи даты и времени входа приписать следующую запись выхода , и исходя из этих двух данных приписать время пребывания на объекте
      На работаю
      Благодарю за информацию Внимания!

          • Re: Как получить предыдущее, текущее и последующее значение из таблицы?
            GIORGI ZHIZHIASHVILI
            PERSON_IDBORDER_CROSS_DATEDIRECTION_NAME
            10753279328.01.2013 18:04:16out
            10753279302.02.2013 5:38:01in
            10753279302.02.2013 7:00:37out
            10753279319.02.2013 16:18:59out
            10753279321.02.2013 6:27:01in
            10744472111.04.2013 6:05:03in
            10744472111.04.2013 6:28:40out
            10744472112.04.2013 6:01:08in
            10744472112.04.2013 6:26:07out
            10744472116.04.2013 5:59:06in
            10744472116.04.2013 6:47:08out
            10744472116.04.2013 13:06:36in
            10744472116.04.2013 13:24:00out
            10744472119.04.2013 6:03:34in
            10744472119.04.2013 6:17:44out
            10753279320.04.2013 5:55:01in
            10744472120.04.2013 6:00:19in
            10744472120.04.2013 6:35:42out
            10753279320.04.2013 7:07:25out
            10753279321.04.2013 5:59:02in
            10744472121.04.2013 6:05:47in
            10744472121.04.2013 6:36:35out
            10744472122.04.2013 5:11:33in
            10744472122.04.2013 5:57:40out
            10744472123.04.2013 5:02:42in
            10744472123.04.2013 5:38:39out
            10744472124.04.2013 5:03:16in
            10744472124.04.2013 5:40:36out
            10744472125.04.2013 5:10:24in
            10744472125.04.2013 5:43:41out
            10744472126.04.2013 5:02:16in
            10744472126.04.2013 6:07:21out
            10744472128.04.2013 5:25:05in
            10744472128.04.2013 5:53:41out
            10744472129.04.2013 15:38:03in
            10744472129.04.2013 22:39:44out
            10744472130.04.2013 5:05:06in
            10744472130.04.2013 5:21:42out
            10744472101.05.2013 5:00:47in
            10744472101.05.2013 5:32:15out
            10744472101.05.2013 16:05:10in
            10744472101.05.2013 23:51:30out
            10744472102.05.2013 5:01:06in
            10744472102.05.2013 5:32:49out
            10744472103.05.2013 5:06:56in
            10744472103.05.2013 5:22:45out
            10744472105.05.2013 5:05:19in
            10744472105.05.2013 5:23:09out
            10744472106.05.2013 4:59:38in
            10744472106.05.2013 5:17:32out
            10744472107.05.2013 5:13:14in
            10744472107.05.2013 5:25:32out
            10744472108.05.2013 5:03:29in
            10744472108.05.2013 5:15:55out
            10744472109.05.2013 5:03:38in
            10744472109.05.2013 5:17:17out
            10744472110.05.2013 5:17:58in
            10744472110.05.2013 5:46:41out
            10744472111.05.2013 4:43:13in
            10744472111.05.2013 6:10:28out
            10744472112.05.2013 4:47:41in
            10744472112.05.2013 5:39:35out
            10744472113.05.2013 4:47:47in
            10744472113.05.2013 5:29:30out
            10744472114.05.2013 5:03:01in
            10744472114.05.2013 5:14:36out
            10744472115.05.2013 5:02:34in
            10744472115.05.2013 5:33:25out
            10744472117.05.2013 5:02:39in
            10744472117.05.2013 5:41:43out
            10744472118.05.2013 4:55:42in
            10744472118.05.2013 5:27:18out
            10744472119.05.2013 4:52:22in
            10744472119.05.2013 5:53:32out
            10744472120.05.2013 4:42:59in
            10744472120.05.2013 5:44:00out
            10744472121.05.2013 4:42:02in
            10744472121.05.2013 5:49:05out
            10744472122.05.2013 4:43:18in
            10744472122.05.2013 5:51:03out
            10744472122.05.2013 20:02:33in
            10744472122.05.2013 22:41:46out
            10744472123.05.2013 4:38:43in
            10744472123.05.2013 5:47:52out
            10744472124.05.2013 5:00:29in
            10744472124.05.2013 5:54:32out
            10744472125.05.2013 5:01:22in
            10744472125.05.2013 5:48:05out
            10744472126.05.2013 4:56:17in
            10744472126.05.2013 5:57:33out
            10744472127.05.2013 5:02:00in
            10744472127.05.2013 5:38:06out
            10744472127.05.2013 20:50:26in
            10744472127.05.2013 22:45:31out
            10744472128.05.2013 5:01:40in
            10744472128.05.2013 5:38:13out
            10744472129.05.2013 4:59:58in
            10744472129.05.2013 5:44:09out
            10744472131.05.2013 5:00:53in
            10744472131.05.2013 5:55:15out
            10744472102.06.2013 4:56:53in
            10744472102.06.2013 5:48:17out
            10744472103.06.2013 5:15:21in
            10744472103.06.2013 5:48:06out
            10744472104.06.2013 4:58:30in
            10744472104.06.2013 5:54:46out
            10744472106.06.2013 5:05:19in
            10744472106.06.2013 6:05:19out
            10744472109.06.2013 5:11:00in
            10744472109.06.2013 6:16:50out
            10744472110.06.2013 5:03:04in
            10744472110.06.2013 5:33:41out
            10744472111.06.2013 5:01:18in
            10744472111.06.2013 5:37:43out
            10744472111.06.2013 20:09:14in
            10744472111.06.2013 22:30:03out
            10744472112.06.2013 5:09:05in
            10744472112.06.2013 5:37:49out
            10744472113.06.2013 4:33:26in
            10744472113.06.2013 5:40:57out
            10744472114.06.2013 4:30:58in
            10744472114.06.2013 5:48:22out
            10744472115.06.2013 4:35:47in
            10744472115.06.2013 5:46:37out
            10744472115.06.2013 15:42:28in
            10744472116.06.2013 6:10:13out
            10744472117.06.2013 4:26:57in
            10744472117.06.2013 5:34:33out
            10744472118.06.2013 4:32:10in
            10744472118.06.2013 5:46:36out
            10744472120.06.2013 4:42:45in
            10744472120.06.2013 6:05:26out
            10744472120.06.2013 13:48:35in
            10744472120.06.2013 22:39:10out
            10744472121.06.2013 4:41:02in
            10744472121.06.2013 6:27:30out
            10744472121.06.2013 15:48:36in
            10744472122.06.2013 5:42:44out
            10744472123.06.2013 4:55:02in
            10744472123.06.2013 5:42:54out
            10744472124.06.2013 4:30:19in
            10744472124.06.2013 5:59:15out
            10744472124.06.2013 16:10:28in
            10744472125.06.2013 5:16:34out
            10744472126.06.2013 4:34:53in
            10744472126.06.2013 5:46:49out
            10744472127.06.2013 4:41:13in
            10744472127.06.2013 5:43:51out
            10744472128.06.2013 4:39:07in
            10744472128.06.2013 5:37:27out
            10744472128.06.2013 18:28:27in
            10744472129.06.2013 5:42:44out
            10744472130.06.2013 4:46:40in
            10744472130.06.2013 5:33:44out
            10744472101.07.2013 4:54:07in
            10744472101.07.2013 5:45:30out
            10744472102.07.2013 4:50:21in
            10744472102.07.2013 5:43:42out
            10753279302.07.2013 17:22:31out
            10744472103.07.2013 4:41:51in
            10744472103.07.2013 5:55:54out
            10744472104.07.2013 4:41:44in
            10744472104.07.2013 5:39:29out
            10744472105.07.2013 4:40:08in
            10744472105.07.2013 5:27:53out
            10744472105.07.2013 12:45:22in
            10744472106.07.2013 1:38:57out
            10744472107.07.2013 4:46:09in
            10744472107.07.2013 5:22:17out
            10753279308.07.2013 4:31:22in
            10744472108.07.2013 4:52:20in
            10753279308.07.2013 5:28:03out
            10744472108.07.2013 5:46:58out
            10753279309.07.2013 4:33:10in
            10744472109.07.2013 4:43:54in
            10753279309.07.2013 5:09:51out
            10744472109.07.2013 5:36:41out
            10744472110.07.2013 4:40:11in
            10753279310.07.2013 4:42:12in
            10753279310.07.2013 5:46:40out
            10744472110.07.2013 5:47:30out
            10753279310.07.2013 22:59:05in
            10744472111.07.2013 1:48:04in
            10753279311.07.2013 14:14:31out
            10753279312.07.2013 4:41:22in
            10753279312.07.2013 5:48:52out
            10753279313.07.2013 4:43:59in
            10744472113.07.2013 5:31:14out
            10753279313.07.2013 5:35:12out
            10753279314.07.2013 4:22:55in
            10744472114.07.2013 4:52:36in
            10753279314.07.2013 5:50:31out
            10744472114.07.2013 6:11:33out
            10753279315.07.2013 4:29:19in
            10744472115.07.2013 4:59:11in
            10744472115.07.2013 5:26:28out
            10753279315.07.2013 5:33:47out
            10744472115.07.2013 14:41:22in
            10753279316.07.2013 4:31:37in
            10753279316.07.2013 5:44:58out
            10744472116.07.2013 5:50:51out
            10753279317.07.2013 4:38:04in
            10744472117.07.2013 4:42:46in
            10744472117.07.2013 5:22:00out
            10753279317.07.2013 5:43:19out
            10753279318.07.2013 4:28:41in
            10744472118.07.2013 4:58:34in
            10744472118.07.2013 5:37:05out
            10753279318.07.2013 5:40:34out
            10753279319.07.2013 4:38:38in
            10744472119.07.2013 4:51:51in
            10753279319.07.2013 5:34:18out
            10744472119.07.2013 5:47:37out
            10753279320.07.2013 4:33:30in
            10744472120.07.2013 4:56:54in
            10744472120.07.2013 5:28:30out
            10753279320.07.2013 5:35:51out
            10744472121.07.2013 5:00:03in
            10744472121.07.2013 5:31:37out
            10753279322.07.2013 4:32:36in
            10744472122.07.2013 5:03:52in
            10753279322.07.2013 5:35:06out
            10744472122.07.2013 5:49:50out
            10753279323.07.2013 4:36:06in
            10744472123.07.2013 4:52:05in
            10753279323.07.2013 5:05:47out
            10744472123.07.2013 5:32:30out
            10744472124.07.2013 4:42:09in
            10753279324.07.2013 4:48:36in
            10744472124.07.2013 5:33:56out
            10753279324.07.2013 5:44:53out
            10753279325.07.2013 4:31:04in
            10744472125.07.2013 4:32:47in
            10753279325.07.2013 5:37:09out
            10744472125.07.2013 5:42:15out
            10753279326.07.2013 4:37:24in
            10744472126.07.2013 4:45:37in
            10744472126.07.2013 5:41:56out
            10753279326.07.2013 5:47:09out
            10744472126.07.2013 16:18:31in
            10744472127.07.2013 5:39:35out
            10753279328.07.2013 4:31:48in
            10744472128.07.2013 4:48:11in
            10753279328.07.2013 5:12:36out
            10744472128.07.2013 5:25:25out
            10753279329.07.2013 4:31:23in
            10744472129.07.2013 4:50:31in
            10753279329.07.2013 5:20:44out
            10744472129.07.2013 5:46:07out
            10744472130.07.2013 4:41:10in
            10744472130.07.2013 5:38:37out
            10753279331.07.2013 4:33:38in
            10744472131.07.2013 4:51:20in
            10753279331.07.2013 5:25:32out
            10744472131.07.2013 5:41:56out
            10753279301.08.2013 4:34:20in
            10744472101.08.2013 4:57:59in
            10753279301.08.2013 5:34:03out
            10744472101.08.2013 5:39:40out
            10753279302.08.2013 4:39:37in
            10744472102.08.2013 4:51:05in
            10753279302.08.2013 5:40:48out
            10744472102.08.2013 6:02:57out
            10744472103.08.2013 4:51:46in
            10744472103.08.2013 5:50:20out
            10738214603.08.2013 11:25:34in
            10738214603.08.2013 13:03:11out
            10738214603.08.2013 14:20:34in
            10744472103.08.2013 20:24:59in
            10753279304.08.2013 4:38:47in
            10753279304.08.2013 5:30:44out
            10744472104.08.2013 5:45:14out
            10744472105.08.2013 4:37:34in
            10744472105.08.2013 5:47:33out
            10738214606.08.2013 4:22:44out
            10753279306.08.2013 4:27:42in
            10744472106.08.2013 4:35:38in
            10744472106.08.2013 5:38:13out
            10738214606.08.2013 6:20:57in
            10753279306.08.2013 15:55:29out
            10753279307.08.2013 4:28:49in
            10744472107.08.2013 4:53:36in
            10744472107.08.2013 5:27:44out
            10753279307.08.2013 5:43:33out
            10738214607.08.2013 7:27:52out
            10753279308.08.2013 4:34:12in
            10744472108.08.2013 4:50:52in
            10753279308.08.2013 5:23:12out
            10744472108.08.2013 5:29:11out
            10753279309.08.2013 4:30:57in
            10744472109.08.2013 4:58:12in
            10744472109.08.2013 5:39:21out
            10753279309.08.2013 5:41:50out
            10753279310.08.2013 4:25:41in
            10744472110.08.2013 4:53:19in
            10753279310.08.2013 5:47:16out
            10744472110.08.2013 5:50:51out
            10753279311.08.2013 4:40:56in
            10744472111.08.2013 4:59:41in
            10744472111.08.2013 5:24:32out
            10753279311.08.2013 5:31:31out
            10753279312.08.2013 4:30:09in
            10744472112.08.2013 4:54:36in
            10744472112.08.2013 5:26:13out
            10753279312.08.2013 5:39:17out
            10753279313.08.2013 4:19:08in
            10753279313.08.2013 5:33:02out
            10744472113.08.2013 16:10:33in
            10753279314.08.2013 4:21:37in
            10753279314.08.2013 5:25:53out
            10744472114.08.2013 5:31:20out
            10753279315.08.2013 4:34:43in
            10744472115.08.2013 4:50:40in
            10744472115.08.2013 5:53:46out
            10753279315.08.2013 5:56:52out
            10753279316.08.2013 4:25:22in
            10744472116.08.2013 4:38:22in
            10753279316.08.2013 5:32:41out
            10744472116.08.2013 5:46:37out
            10744472117.08.2013 4:38:30in
            10744472117.08.2013 5:40:43out
            10753279318.08.2013 4:29:04in
            10753279318.08.2013 5:51:54out
            10753279319.08.2013 4:19:35in
            10744472119.08.2013 4:47:08in
            10753279319.08.2013 5:26:01out
            10744472119.08.2013 5:35:12out
            10753279320.08.2013 4:37:15in
            10744472120.08.2013 4:40:28in
            10744472120.08.2013 5:38:20out
            10753279320.08.2013 5:45:44out
            10753279321.08.2013 4:21:50in
            10753279321.08.2013 6:01:00out
            10753279322.08.2013 4:46:12in
            10744472122.08.2013 4:49:46in
            10744472122.08.2013 5:40:42out
            10753279322.08.2013 5:52:18out
            10753279323.08.2013 4:26:19in
            10744472123.08.2013 4:47:23in
            10744472123.08.2013 5:15:22out
            10753279323.08.2013 5:56:15out
            10753279324.08.2013 4:30:30in
            10744472124.08.2013 4:54:42in
            10744472124.08.2013 5:34:13out
            10744472125.08.2013 4:49:22in
            10744472125.08.2013 5:15:29out
            10753279325.08.2013 7:21:58out
            10753279326.08.2013 2:17:05in
            10753279326.08.2013 15:48:21out
            10753279327.08.2013 4:25:00in
            10744472127.08.2013 4:48:03in
            10753279327.08.2013 5:33:08out
            10744472127.08.2013 6:10:05out
            10753279328.08.2013 4:27:07in
            10744472128.08.2013 4:38:29in
            10744472128.08.2013 5:31:43out
            10753279328.08.2013 5:32:23out
            10753279329.08.2013 4:34:32in
            10744472129.08.2013 4:45:18in
            10744472129.08.2013 5:32:59out
            10753279329.08.2013 5:38:03out
            10744472129.08.2013 19:18:31in
            10753279330.08.2013 4:25:27in
            10744472130.08.2013 5:57:35out
            10753279330.08.2013 6:19:44out
            10753279331.08.2013 4:41:50in
            10753279331.08.2013 5:46:50out
            10744472101.09.2013 4:35:41in
            10753279301.09.2013 4:38:43in
            10744472101.09.2013 5:30:51out
            10753279301.09.2013 6:06:31out
            10753279302.09.2013 4:33:21in
            10753279302.09.2013 5:24:05out
            10753279303.09.2013 4:46:53in
            10753279303.09.2013 5:45:49out
            10744472103.09.2013 22:47:22in
            10753279304.09.2013 4:31:34in
            10753279304.09.2013 5:39:07out
            10753279305.09.2013 4:35:10in
            10753279305.09.2013 5:58:44out
            10753279306.09.2013 4:30:12in
            10744472106.09.2013 5:30:13out
            10753279306.09.2013 5:39:04out
            10744472108.09.2013 5:06:54in
            10744472108.09.2013 5:49:38out
            10744472109.09.2013 4:23:05in
            10753279309.09.2013 4:31:15in
            10744472109.09.2013 5:02:10out
            10753279309.09.2013 5:35:17out
            10753279310.09.2013 4:46:24in
            10753279310.09.2013 5:37:13out
            10744472110.09.2013 20:31:52in
            10753279311.09.2013 4:30:00in
            10753279311.09.2013 5:49:03out
            10753279312.09.2013 4:32:06in
            10753279312.09.2013 5:27:47out
            10744472112.09.2013 6:11:13out
            10744472113.09.2013 14:49:49in
            10753279314.09.2013 4:32:11in
            10753279314.09.2013 5:36:34out
            10744472114.09.2013 5:40:44out
            10753279315.09.2013 4:54:02in
            10753279315.09.2013 5:27:53out
            10753279316.09.2013 4:24:52in
            10753279316.09.2013 5:35:25out
            10744472116.09.2013 19:06:00in
            10753279317.09.2013 4:57:51in
            10744472117.09.2013 5:30:33out
            10753279317.09.2013 5:56:26out
            10753279317.09.2013 10:27:20in
            10744472118.09.2013 4:39:48in
            10744472118.09.2013 5:40:22out
            10744472118.09.2013 18:43:41in
            10744472119.09.2013 5:54:53out
            10744472119.09.2013 21:35:57in
            10744472120.09.2013 6:04:53out
            10744472121.09.2013 3:31:14in
            10744472121.09.2013 6:09:26out
            10744472121.09.2013 21:50:51in
            10744472122.09.2013 5:23:46out
            10744472122.09.2013 20:13:50in
            10744472124.09.2013 1:53:28out
            10744472125.09.2013 4:40:45in
            10744472125.09.2013 5:29:01out
            10744472125.09.2013 14:59:46in
            10744472126.09.2013 5:21:18out
            10744472127.09.2013 4:47:42in
            10744472127.09.2013 5:15:17out
            10744472130.09.2013 16:57:43in
            10744472101.10.2013 5:03:26out
            10753279302.10.2013 2:20:49out
            10744472102.10.2013 18:13:56in
            10744472103.10.2013 2:56:47out
            10744472104.10.2013 17:47:31in
            10744472105.10.2013 2:16:03out
            10753279307.10.2013 0:34:16in
            10753279307.10.2013 15:56:12out
            10744472108.10.2013 4:51:29in
            10744472108.10.2013 5:03:50out
            10744472109.10.2013 4:34:06in
            10744472109.10.2013 5:28:51out
            10744472110.10.2013 4:36:42in
            10744472110.10.2013 5:26:06out
            10744472111.10.2013 4:27:50in
            10753279311.10.2013 4:46:33in
            10744472111.10.2013 5:11:15out
            10753279311.10.2013 5:38:58out
            10738214612.10.2013 2:27:44in
            10744472112.10.2013 4:27:06in
            10744472112.10.2013 5:29:47out
            10753279313.10.2013 4:31:47in
            10744472113.10.2013 4:53:54in
            10744472113.10.2013 5:28:24out
            10753279313.10.2013 5:36:46out
            10738214613.10.2013 18:43:47out
            10753279314.10.2013 4:43:50in
            10744472114.10.2013 4:44:43in
            10744472114.10.2013 5:03:26out
            10753279314.10.2013 5:15:54out
            10744472114.10.2013 17:06:38in
            10753279315.10.2013 4:31:50in
            10744472115.10.2013 5:14:29out
            10753279315.10.2013 5:39:37out
            10753279316.10.2013 4:29:41in
            10753279316.10.2013 5:30:16out
            10744472116.10.2013 13:42:47in
            10744472117.10.2013 3:54:30out
            10753279317.10.2013 5:26:12in
            10753279317.10.2013 16:09:53out
            10744472117.10.2013 20:38:48in
            10753279319.10.2013 4:33:48in
            10753279319.10.2013 5:28:12out
            10744472119.10.2013 16:58:59out
            10753279321.10.2013 4:37:39in
            10753279321.10.2013 5:22:41out
              • Re: Как получить предыдущее, текущее и последующее значение из таблицы?
                Evgeny Stuchalkin

                Эту задачу можно решить при помощи сортировки данных в скрипте загрузки. Конечный код конечно будет зависеть от того, есть ли в данных "проблемные места" (например, когда человек зашел в обход системы учета, а вышел через нее, и у него подряд 2 события выхода стоят). Но в общем случае я решал бы ее так:

                 

                dataTmp1: //Загружаем исходные данные

                LOAD

                  RowNo() as PassID, //Проставляем нумерацию для уникального определения каждой строки

                    PERSON_ID,

                    BORDER_CROSS_DATE as CrossTS,

                    date(floor(BORDER_CROSS_DATE)) as Day,

                    DIRECTION_NAME

                FROM [lib://Demo (bbsales-u122707_qlik.acc)/In-Out.csv]

                (txt, codepage is 1251, embedded labels, delimiter is ',', msq);

                 

                 

                dataTmp2:

                NoConcatenate

                load

                *

                Resident dataTmp1 order by PERSON_ID,CrossTS asc; //Сортируем данные по сотруднику, а потом по дате прохода, по возрастанию

                 

                 

                 

                 

                dataTmp3:

                NoConcatenate

                load *,

                if(PERSON_ID<>Previous(PERSON_ID) and DIRECTION_NAME='out',1,0) as delMark //Отмечаем первую запись по сотруднику, если она имеет направление out, чтобы всегда начинать со входа

                Resident dataTmp2;

                 

                 

                data:

                NoConcatenate

                load *,

                if(PERSON_ID=Previous(PERSON_ID) and DIRECTION_NAME='out',alt(-(Previous(CrossTS)-CrossTS),0),0) as [InTime] //Для каждой строчки выхода считаем разность от ее времени до времени предыдущей записи, ставим знак минус, потому что время выхода больше, чем время входа, чтобы в итоге получить положительное значение длительности.

                 

                 

                 

                 

                Resident dataTmp3 where delMark=0; //Обрезаем первую запись по сотруднику, если она имеет направление out, чтобы всегда начинать со входа

                 

                 

                //Дропаем временные таблицы

                drop Tables dataTmp1, dataTmp2, dataTmp3;

                 

                 

                Вот итоги:

                598b79930c.jpg