2017-10-06 6 views
1

제목에서 알 수 있듯이 컬렉션의 값으로 SQL 테이블을 필터링하려고합니다. 이를 달성하기 위해 Filter() 함수와 in 수식을 사용하려고합니다. ID가 'SQLTable의'속하는 열인 PowerApps - 컬렉션 컬럼의 SQL 테이블 필터링

ClearCollect(NewCollection, Filter('SqlTable', ID in ExistingCollection.ID))

....

" '연산자'의 오른쪽이 열 이름이 아닙니다. '라는 오류가 나타납니다. 내 컬렉션 'ExistingCollection'에는 데이터가 있고 SqlTable에도 데이터가 있습니다.

비용 테이블의 크기는 20k 더하기 행이 될 수 있지만이 필터는 매우 적은 하위 집합 인 ~ 200 행을 반환해야합니다. 여기에 5000 행 제한이 있습니까? 아니면 이런 종류의 필터링이 불가능합니까?

답변

0

오류 메시지는 정확하지 않으므로 무시할 수 있습니다. 어쨌든 그것은 오류가 아니라 파란색 밑줄 경고입니다. 즉, 쿼리는 위임되지 않으므로 SqlTable의 처음 500 개 레코드에서만 결과가 나옵니다.

ExistingCollection.ID에 SqlTable의 처음 500 개 레코드에있는 값을 포함시켜 테스트 할 수 있습니다.

현재 PowerApps 설명서에서는 in 연산자가 SQL Server에 대해 위임되었지만 실제로는 멤버십 연산자로 사용되지 않는다고 말합니다.

포인트 5는 this reference입니다.

참조는 Azure에 대해 언급하지만 SQL Server에도 동일한 제한 사항이 적용됩니다.

+0

그래서이 권리를 이해하고 있다면 ... 'in'을 사용하여 필터링하기 전에 SqlTable을 컬렉션으로 필터링해야합니까? – Alex

+0

컬렉션의 전체 또는 일부를 컬렉션에로드하지 않고 'in'을 사용하여 SqlTable을 필터링 할 수 있지만 SqlTable의 처음 500 개 행에서만 결과를받습니다. SqlTable의 전체 또는 일부를 컬렉션에로드하면 'in'필터를 제한없이 컬렉션에 적용 할 수 있습니다. 그러나 주요 문제는 컬렉션에 SqlTable 전체 또는 일부를로드하는 방법입니다. 현재 반복을 통해서만 500 개가 넘는 행을로드 할 수 있습니다. 그것은 할 수 있지만 지저분 해. – Meneghino