2017-11-19 11 views
0

이것은 qlikview를 처음 사용하는 것으로 SQL 경험이 있으므로 매우 간단합니다. 저는 취업 지원을 위해 그것을하고 있지만 한 가지 문제가 있습니다. 나는 계산서를해야했다. 먼저로드 명령문 또는 Select 문에 카운트를 넣는 것이 가장 좋습니다. 아니면 상황에 달려 있습니까? 둘째, 나는 현재 load 문에서 그것을 가지고 있으며 오류가 발생합니다. 여기에 코드입니다 :Load 문에서 Count가 오류를 발생합니다.

//This is the Order Details Table 
OrderDetails: 
LOAD OrderID & LineNo as OrderLineKey, OrderID, /*LineNo,*/ Discount, ProductID, Quantity, 
UnitPrice, UnitPrice*Quantity*(1-Discount) as Sales, Count(ProductID) as ProductIDRecordCounter; 
SQL SELECT OrderID, Discount, Quantity, ProductID, UnitPrice, LineNo 
FROM `Order Details` 
GROUP BY OrderID, ProductID, Discount, Quantity, UnitPrice, LineNo; 

이가 나를주고있다 오류입니다 :

에 OrderID BY Order Details 그룹에서 잘못된 표현 SQL SELECT OrderID를, 할인, 수량, 제품 ID, 단가, LINENO, 제품 ID, 할인, 수량, 단가, LINENO

그것은 전에 카운트 문을 추가로 일했다 (물론 그룹은하는 WO에 문 필요 rk)

답변

0

SQL 문은 SQL 쿼리를 발행하므로 먼저 SQL 관리 Studio, SQL Developer 또는 다른 도구를 사용하여 데이터베이스에 대해 실행할 때 SQL 문 다음에 실행 한 모든 항목이 실행되는지 확인하십시오. 당신은 SQL 쿼리를 테스트 할 수 있습니다).

LOAD 문은 Qlik이 이전 명령 (다른 LOAD 또는 SQL)에서받은 데이터를 통해 수행 할 추가 단계를 설명합니다. 언뜻보기에 LOAD 구문에 대한 많은 논리를 SQL 문에 전달할 수 있다고 해봅시다. 시나리오에서 추가 LOAD 명령 (SQL 명령 맨 위)의 사용을 완전히 버립니다.

0

브루노와 동의. 가능하면Group By 진술을 SQL 선택으로 이동하십시오. (훨씬 더 빨리 SQL에서) 데이터가 작지만 큰 데이터 세트에 속도가 눈에 띄는 경우

는 이것을 Group By 절은 SQL 문하지만 실제 집계 함수에 같은 글 속도 많은 차이를 볼 수 없습니다 QlikView이 때문에 오류가 발생합니다.

이처럼 유지하려면 (SQL에서로드 한 후 집계 QlikView에서) 코드는 다음과 같아야합니다

OrderDetails: 
LOAD 
    OrderID & LineNo as OrderLineKey, 
    OrderID, 
    /*LineNo,*/ 
    Discount, 
    ProductID, 
    Quantity, 
    UnitPrice, 
    UnitPrice * Quantity * (1-Discount) as Sales, 
    Count(ProductID) as ProductIDRecordCounter 
GROUP BY 
    OrderID, 
    ProductID, 
    Discount, 
    Quantity, 
    UnitPrice, 
    LineNo; 
SQL 
SELECT 
    OrderID, 
    Discount, 
    Quantity, 
    ProductID, 
    UnitPrice, 
    LineNo 
FROM `Order Details`;