2017-09-12 1 views
1

visid, custid 및 value의 각 concactentation은 "detail"및 "confirm"둘 다 또는 "detail"만 가질 수 있습니다. 이 행을 검색 할 수 없습니다 것을 단지 "세부 사항"이있는 경우, 다른 내가SQL에서 조건이있는 행 선택

visid  custid value  datetime    value1 
123  456  11  2017-03-01 12:34:11  Detail 
123  456  11  2017-03-01 12:36:11  confirm 
567  342  56  2017-03-01 12:45:11  Detail 
567  342  56  2017-03-01 12:46:11  confirm 
411  124  78  2017-03-01 12:34:11  Detail 

Output: 
visid  custid value  datetime    
123  456  11  00:02:00 (12:36:11 - 12:34:11) 
567  342  56  00:01:00 (12:46:11 - 12:45:11) 

"확인"visid, custid과 가치의 조합이 "상세"모두가있을 때 날짜 시간 의 차이를 찾을해야 참고 : 411, 124 및 78의 마지막 행에는 확인이 없기 때문에 해당 행을 제거해야합니다.

쿼리 내가 시도 :

select visid, custid, value, concat(visid, custid, value) as session, datetime 
    from table1 
    where datetime between "2017-05-01 00:00:00" and "2017-05-02 00:00:00" 
    and value1 in ('Detail','Confirm') 
+1

사용중인 데이터베이스에 질문을 태그하십시오. –

답변

0

datetime 기능은 데이터베이스에만 적용됩니다. 귀하의 경우, 자체 조인은 간단한 접근 방법입니다.이 방법은 차이에 대해 빼기를 사용합니다. 정확한 기능은 데이터베이스에 따라 다릅니다.