>

다른 날짜/시간에 정기적으로 발행 (I-UN) 및 낭비 (W-WS)하는 몇 가지 품목이 있습니다. 매번 트랜잭션 시간을 유지하려고했기 때문에 (W-WS에서 I-UN 빼기)이를 달성하려면 I-UN 날짜와 W-WS가 별도의 열에 있어야합니다.

아래는 내가 가진 것입니다 :

   ItemID  Type    Date
    441455  I-UN    3/24/19 8:00
    441455  W-WS    3/24/19 8:09
    441455  I-UN    3/24/19 9:47
    441455  W-WS    3/24/19 9:51
    441455  I-UN    3/24/19 12:20
    441455  W-WS    3/24/19 12:26
    441455  I-UN    3/24/19 15:50
    441455  W-WS    3/24/19 15:53

아래는 내가 달성하려는 것입니다 :

   ItemID  I-UN Date       W-WS Date
    441455  3/24/19 8:00    3/24/19 8:09
    441455  3/24/19 9:47    3/24/19 9:51
    441455  3/24/19 12:20   3/24/19 12:26
    441455  3/24/19 15:50   3/24/19 15:53

원하는 결과를 얻기 위해 쿼리 할 수있는 방법이 있습니까? 도와 주셔서 감사합니다. 감사합니다!


  • 답변 # 1

    I-UN 와 함께 테이블의 자체 조인을 수행하십시오.  왼쪽의 행과 TOP 1 W-WS   Date 와 함께 오른쪽에 행  오른쪽> Date  왼쪽의.

    자기 가입의 대안으로, 당신은 단지 I-UN 를 선택할 수 있습니다  FROM..WHERE 절에 행을 추가하고 W-WS Date 를 가져옵니다.  하위 쿼리를 사용합니다.

  • 답변 # 2

    항목 ID와 row_number() 에서 전체 조인을 시도 할 수 있습니다.  시간순으로 주문합니다.

    SELECT t1.itemid [ItemID],
           t1.date [I-UN Date],
           t2.date [W-WS Date]
           FROM (SELECT itemid,
                        date,
                        row_number() OVER (ORDER BY date) r#
                        FROM elbat
                        WHERE type = 'I-UN') t1
                FULL JOIN (SELECT itemid,
                                  date,
                                  row_number() OVER (ORDER BY date) r#
                                  FROM elbat
                                  WHERE type = 'W-WS') t2
                          ON t1.itemid = t2.itemid
                             AND t1.r# = t2.r#;
    
    

    db<>피들

    두 시간이 모두 존재하는 쌍만 원하는 경우 내부 조인 (또는 둘 중 하나만 모든 시간을 가져 오려면 왼쪽 또는 오른쪽 조인)을 사용하십시오.

관련 자료

  • 이전 apache - uima ruta의 출력을 얻지 못함
  • 다음 angular - 페이지로드 시간 통계