문제

나는 xe6을 firedac으로 사용하고 있습니다.ItemVals가 Ftfloat 필드로 FDMemtable을 가지고 있습니다.나는 합계 (itemVals)의 집계 함수를 사용하고 싶지만 값을 0으로 추가하는 ItemVals 만 원한다. ItemVals는 ftfloat이지만 찾을 수있는 한 float에 null 값을 할당 할 수 없습니다...에그래서 나는 null 값을 나타 내기 위해 -1의 값을 사용하고 있습니다.나는 합계 (ItemVals)> 0을 시도했지만 실제를 반환합니다.누구든지 나를 올바른 방향으로 가리킬 수 있습니까?고마워.

도움이 되었습니까?

해결책

extended expression syntax 및 쓰기를 사용할 수 있습니다. SUM를 사용하여 0보다 크거나 0보다 크거나 같을 때 필드 값을 반환합니다.이 방법으로 다음과 같이 :

Aggregate.Expression := 'SUM(IIF(ItemVals > 0, ItemVals, 0))';
.

하지만 귀하의 질문의 근원으로 돌아갑니다. IIF 데이터 유형 필드에 null 값을 할당하는 방법을 찾을 수 없다고 말했습니다. 내 추측은이 방법으로 값을 할당하고 있습니다.

FDMemTable.FieldByName('ItemVals').AsFloat := 1.23;
.

예, 그런 식으로 null 값을 할당 할 수는 없지만 ftFloat 필드의 속성, 예 :

FDMemTable.FieldByName('ItemVals').Value := NULL;
.

-1 대신 null 값을 할당하는 것은 값이 없음의 의도를 훨씬 잘 설명하고 집계 식을 Value로 다시 단순화합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top