#PowerApps의 데이터 조인 (JOIN)
6956 단어 PowerApps
조인에 대한 일반적인 설명은 여러 가지가 있습니다.
이번에는 Power Apps의 틀에서 5개의 JOIN(INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, CROSS)을 어떻게 실현하는지 설명합니다.
관련 게시물; 여기
준비
단순화를 위해 다음과 같은 두 가지 Collection을 고려하십시오.
고객
CustID
CustomerName
Country
1
Alfreds Futterkiste
독일
2
Ana Trujillo
멕시코
3
Antonio Moreno Taquería
멕시코
주문
OrderID
CustID
OrderDate
ShipperID
10308
2
1996-09-18
3
10309
37
1996-09-19
1
10310
77
1996-09-20
2
조인 조건은 CustID가 일치하는지 여부입니다.
이 경우 보시다시피 CustID = 2의 레코드는 공통 부분입니다.
두 개의 Collection 생성은 다음과 같습니다. 어떤 버튼으로 생성하십시오.
ClearCollect(Customer,
{CustID:1,CutstomerName:"Alfreds Futterkiste",Country:"Germany"},
{CustID:2,CutstomerName:"Ana Trujillo",Country:"Mexico"},
{CustID:3,CutstomerName:"Antonio Moreno Taquería",Country:"Mexico"});
ClearCollect(Order,
{OrderID:10308,CustID:2,ShipDate:Date(1996,9,18),ShipperID:3},
{OrderID:10309,CustID:37,ShipDate:Date(1996,9,19),ShipperID:1},
{OrderID:10310,CustID:77,ShipDate:Date(1996,9,20),ShipperID:2})
모든 조인에서 다음과 같은 테이블을 얻을 수 있습니다.
CustID
CustomerName
Country
OrderID
OrderDate
ShipperID
그럼 빨리 데이터를 결합합시다.
JOIN two collections
LEFT OUTER
실은 가장 간단한 것은 LEFT OUTER JOIN입니다.
LEFT가 Customer 테이블이면,
DropColumns(
Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
),
"OCustID"
)
htps : // 이 m/h-나가오/있어 ms/f4 아 65에 7c84357599b8b8
LEFT 테이블의 모든 데이터와 RIGHT의 일치 부분이 표시되었습니다.
RIGHT OUTER
RIGHT OUTER는 왼쪽과 오른쪽 역할만 바꿉니다.
DropColumns(
Ungroup(
AddColumns(
RenameColumns(
Order,
"CustID",
"OCustID"
),
"order",
Filter(
Customer,
CustID = OCustID
)
),
"order"
),
"OCustID"
)
정말, 테이블의 위치가 바뀌고 있습니다.
INNER JOIN
FULL OUTER 전에 INNER JOIN에서.
INNER JOIN은 LEFT/RIGHT의 공통 부분을 추출하는 조작이므로, LEFT/RIGHT OUTER 후에 Filter해 주면 됩니다.
DropColumns(
Filter(
Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
),
!IsBlank(OCustID)
),
"OCustID"
)
포인트는 Filter(....,!IsBlank(OCustID))
입니다. 조인시 참조에 사용된 열(RIGHT 유래)이, Blank가 아닌 레코드를 취득하는 것으로, 일치 부분만 취득하고 있습니다.
FULL OUTER
FULL OUTER는 스텝으로서는 LEFT OUTER+(RIGHT OUTER - INNER)의 형식으로 결과를 얻기로 합니다.
다른 좋은 방법이있을 수 있습니다.
DropColumns(
Ungroup(
Table(
{
Tab: Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
)
},
{
Tab: Filter(
Ungroup(
AddColumns(
RenameColumns(
Order,
"CustID",
"OCustID"
),
"order",
Filter(
Customer,
CustID = OCustID
)
),
"order"
),
IsBlank(CustID)
)
}
),
"Tab"
),
"OCustID"
)
매우 길지만 방법으로는
ClearCollect(Customer,
{CustID:1,CutstomerName:"Alfreds Futterkiste",Country:"Germany"},
{CustID:2,CutstomerName:"Ana Trujillo",Country:"Mexico"},
{CustID:3,CutstomerName:"Antonio Moreno Taquería",Country:"Mexico"});
ClearCollect(Order,
{OrderID:10308,CustID:2,ShipDate:Date(1996,9,18),ShipperID:3},
{OrderID:10309,CustID:37,ShipDate:Date(1996,9,19),ShipperID:1},
{OrderID:10310,CustID:77,ShipDate:Date(1996,9,20),ShipperID:2})
LEFT OUTER
실은 가장 간단한 것은 LEFT OUTER JOIN입니다.
LEFT가 Customer 테이블이면,
DropColumns(
Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
),
"OCustID"
)
htps : // 이 m/h-나가오/있어 ms/f4 아 65에 7c84357599b8b8
LEFT 테이블의 모든 데이터와 RIGHT의 일치 부분이 표시되었습니다.
RIGHT OUTER
RIGHT OUTER는 왼쪽과 오른쪽 역할만 바꿉니다.
DropColumns(
Ungroup(
AddColumns(
RenameColumns(
Order,
"CustID",
"OCustID"
),
"order",
Filter(
Customer,
CustID = OCustID
)
),
"order"
),
"OCustID"
)
정말, 테이블의 위치가 바뀌고 있습니다.
INNER JOIN
FULL OUTER 전에 INNER JOIN에서.
INNER JOIN은 LEFT/RIGHT의 공통 부분을 추출하는 조작이므로, LEFT/RIGHT OUTER 후에 Filter해 주면 됩니다.
DropColumns(
Filter(
Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
),
!IsBlank(OCustID)
),
"OCustID"
)
포인트는
Filter(....,!IsBlank(OCustID))
입니다. 조인시 참조에 사용된 열(RIGHT 유래)이, Blank가 아닌 레코드를 취득하는 것으로, 일치 부분만 취득하고 있습니다.FULL OUTER
FULL OUTER는 스텝으로서는 LEFT OUTER+(RIGHT OUTER - INNER)의 형식으로 결과를 얻기로 합니다.
다른 좋은 방법이있을 수 있습니다.
DropColumns(
Ungroup(
Table(
{
Tab: Ungroup(
AddColumns(
Customer,
"order",
Filter(
RenameColumns(
Order,
"CustID",
"OCustID"
),
CustID = OCustID
)
),
"order"
)
},
{
Tab: Filter(
Ungroup(
AddColumns(
RenameColumns(
Order,
"CustID",
"OCustID"
),
"order",
Filter(
Customer,
CustID = OCustID
)
),
"order"
),
IsBlank(CustID)
)
}
),
"Tab"
),
"OCustID"
)
매우 길지만 방법으로는
라는 느낌입니다. 2,3 부분은 내 이전 게시물을 참조하십시오.
여기
CROSS JOIN
CROSS JOIN만은 조금 달라 모든 조합을 망라합니다. 즉, 참조할 열이 없습니다.
이 경우 매우 간단하게 LEFT 테이블에 RIGHT 테이블을 열로 추가하고 해당 열을 Ungroup으로 확장하는 방법을 사용합니다.
Ungroup(
AddColumns(
Customer,
"OrderTab",
RenameColumns(
Order,
"CustID",
"OCustID"
)
),
"OrderTab"
)
결론
Power Apps로 개발하는 사람의 메인은 이런 테이블 결합 등에별로 익숙하지 않을지도 모릅니다만, 알아두면 여러가지 편리하므로, 꼭 수중에서도 시험해 보세요.
발전적으로 두 개의 SharePoint 목록을 사용해 보는 것이 좋은 교육이 될 수 있습니다.
Reference
이 문제에 관하여(#PowerApps의 데이터 조인 (JOIN)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/h-nagao/items/769136d2f227667ca0f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(#PowerApps의 데이터 조인 (JOIN)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/h-nagao/items/769136d2f227667ca0f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)