>

항목 1이 시설을 떠 났는지 보여주는 데이터를 캡처하고 싶습니다. 그러면 항목 2가 항목 1과 남은 시간의 백분율은 x %입니다. Access SQL에이 질문을 캡처 할 수있는 기능이 있는지 확실하지 않습니다. 이것이 SQL에서 가능한지 또는 Access와 다른 R, Python으로의 졸업을 알고 있는지 알고 싶습니다.

지금까지 내가 가진 것 :

어제부터 포스터 덕분에 다음 코드를 사용하여 언제라도 함께 남아 있는지에 따라 항목을 그룹화 할 수있었습니다.

SELECT DISTINCT a.TK, b.TK
FROM access3 a JOIN access3 b ON a.DocumentNo = b.DocumentNo
WHERE NOT a.TK=b.TK
ORDER BY a.TK,b.TK

이것은 다음과 같은 출력 샘플을 제공합니다 :


TK15535 TK16644
TK15535 TK17566
TK15535 TK18306
TK15535 TK18747
TK15535 TK19183
TK15535 TK19505
TK15535 TK23247
TK15539 TK15535
TK15539 TK16644
TK16330 TK11297
TK16330 TK11300
TK16330 TK11301
TK16330 TK11309
TK16330 TK11320
TK16330 TK12081
TK16330 TK12233
TK16330 TK12395
TK16330 TK12405


다시 말해, 문서 번호에서 TK #가 발생한 경우입니다. 다른 TK #를 사용하면 쿼리에 나타납니다.

다음은 내가 작업하고있는 작업에 대한 아이디어를 얻을 수있는 샘플 데이터입니다.

Document No.    TK# Posting Date    Quantity    Date
SSPT254937  TK24006 3/7/2019    1   19-03
SSPT254937  TK24006 3/7/2019    1   19-03
SSPT254937  TK27511 3/7/2019    4   19-03
SSPT254937  TK27508 3/7/2019    1   19-03
SSPT254955  TK19183 3/7/2019    1   19-03
SSPT254955  TK23247 3/7/2019    1   19-03
SSPT254956  21635   3/7/2019    150 19-03
SSPT254957  TK14813 3/7/2019    3   19-03
SSPT254962  TK16737 3/7/2019    4   19-03
SSPT254962  TK18008 3/7/2019    4   19-03
SSPT254977  TK26041 3/7/2019    1   19-03
SSPT254977  TK26042 3/7/2019    1   19-03
SSPT254977  TK22483 3/7/2019    1   19-03
SSPT254977  TK22481 3/7/2019    1   19-03
SSPT254979  TK20454 3/7/2019    2   19-03
SSPT254980  TK17715 3/7/2019    1   19-03
SSPT254982  TK29195 3/7/2019    1   19-03
SSPT254982  TK29078 3/7/2019    1   19-03
SSPT254982  TK29199 3/7/2019    1   19-03
SSPT254983  TK24784 3/7/2019    1   19-03
SSPT254983  TK25284 3/7/2019    1   19-03
SSPT254983  TK28267 3/7/2019    1   19-03
SSPT254983  TK28268 3/7/2019    1   19-03
SSPT254983  TK20098 3/7/2019    2   19-03
SSPT254983  TK21407 3/7/2019    1   19-03
SSPT254983  TK25632 3/7/2019    1   19-03
SSPT254984  TK15012 3/7/2019    1   19-03
SSPT254988  TK20003 3/7/2019    1   19-03
SSPT254988  TK18816 3/7/2019    1   19-03
SSPT254989  TK14094 3/7/2019    1   19-03
SSPT254989  TK21180 3/7/2019    1   19-03
SSPT254991  TK11309 3/7/2019    1   19-03
SSPT254991  TK20245 3/7/2019    1   19-03
SSPT254991  TK16918 3/7/2019    1   19-03
SSPT266212  29001   5/20/2019   1   19-05
SSPT266235  TK13958 5/20/2019   1   19-05
SSPT266236  TK16330 5/20/2019   1   19-05
SSPT266236  TK16332 5/20/2019   1   19-05
SSPT266236  TK16331 5/20/2019   1   19-05
SSPT266236  TK16737 5/20/2019   4   19-05
SSPT266236  TK18008 5/20/2019   4   19-05
SSPT266238  TK16343 5/20/2019   1   19-05
SSPT266238  TK16345 5/20/2019   1   19-05
SSPT266239  TK18815 5/20/2019   1   19-05
SSPT266239  TK15484 5/20/2019   2   19-05
SSPT266240  TK22951 5/20/2019   1   19-05
SSPT266240  TK22951 5/20/2019   1   19-05
SSPT266240  TK22951 5/20/2019   1   19-05
SSPT266240  TK22951 5/20/2019   1   19-05
SSPT266242  TK25676 5/20/2019   1   19-05
SSPT266242  TK25676 5/20/2019   1   19-05
SSPT266242  TK27435 5/20/2019   1   19-05
SSPT266242  TK27741 5/20/2019   1   19-05
SSPT266242  TK27914 5/20/2019   1   19-05
SSPT266242  TK25067 5/20/2019   1   19-05


지금까지 시도한 것 :

피벗 테이블을보고 원하는 백분율을 추출 할 수있는 영리한 방법이 있는지 알아보기 위해 Excel로 돌아갔습니다. 배송 비율을 추정하기 위해 데이터를 보는 좋은 방법을 제공하지는 않습니다. 피벗 테이블을 사용하려면 600 개 이상의 모든 항목을 직접 계산해야합니다.

두 번째 아이디어는 SQL 쿼리를 사용하여 빈도를 표시하는지 확인하는 것이지만, 그 기능을 제공하는 함수 유형은 보이지 않습니다. 참고로 여기에 함수가 있는지 확인하려고합니다. http://www-db.deis.unibo.it/courses/TW/DOCS/w3schools/sql/sql_functions.asp.html

내가보고 싶은 것은 다음과 같다고 생각합니다

TK16330        TK16331      .85
TK16330        TK16332      .53
TK16330        TK16343      .92
etc

SQL로도 가능합니까, 아니면 졸업 했습니까?

  • 답변 # 1

    적절한 행에 참여하고 집계하여 모든 쌍의 동시성을 얻을 수 있습니다.

    테이블에 중복이 없다고 가정하면 다음과 같이 작동합니다.

    select tk, tk2, count(*), count(a2.tk) / count(*) as ratio
    from ((select distinct a.TK, a2.TK as tk2
           from access3 as a inner join
                access3 as a2 
                on a.DocumentNo = a2.DocumentNo
           where a.TK <> a2.TK
          ) tt left join
          access3 as a
          on a.tk = tt.tk
         ) left join
         access3 as a2
         on a2.tk = tt.tk2 and a2.documentNo = a.documentNo
    group by tk, tk2;
    
    

    도구 선택에있어서, MS Access 이외의 거의 모든 데이터베이스는 이것을보다 쉽게 ​​만들 것입니다. 예를 들어 MS Access는 다음을 지원하지 않습니다.

    창 기능

    CTE

    개별 카운트

    외부 조인 조건의 불평등

    이 문제에 유용 할 수있는 것은 네 가지입니다. 다른 것들도 많이 있습니다.

  • 이전 excel - Internet Explorer GetElementByID는 "호출 된 개체와 클라이언트의 연결이 끊어졌습니다"를 생성합니다
  • 다음 c++ - gcc의 fma3 - 활성화하는 방법