1
CREATE TABLE [Table1] (
[OrderNumber] integer,
[Amount] float
);
dbExpress 라이브러리의 TSQLQuery
을 사용하십시오.agregate 필드의 올바른 데이터 유형을 얻는 방법은 무엇입니까?
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Text := 'select sum(Amount) from Table1 group by OrderNumber';
SQLQuery1.Open;
SQLQuery1.First;
Memo1.Lines.Add(FloatToStr(SQLQuery1.Fields.FieldByNumber(1).AsFloat));
은 결과, 내가 얻을 : 메시지
예외 클래스 EDatabaseError는 'Float 형으로'Column0 '필드에 액세스 할 수 없습니다'.
그러나 내가 String
으로 값을 얻으 려한다면 오류가 없습니다. 그것은 작동 :
Memo1.Lines.Add(SQLQuery1.Fields.FieldByNumber(1).AsString);
어떻게 Float
에서 데이터를 얻을?
이 질문을 참조하십시오 https://stackoverflow.com/questions/32814875/how-in-delphi-can-i-force-an-sqlite-aggregate-field-to-be-a-numeric-field .. –
@ JohnEasley 나는 모든 변종'Table1 ...에서'선택 (합계 (양) float)','합계 (금액) * 1.0 Table1 ...에서 선택 캐스팅을 시도했지만, 같은 오류가있어 – HeathRow
Column1을 사용할 때 오류가 Column0을 참조하는 것이 이상합니다. 두 개의 컬럼이 결과 세트에 있도록'SELECT OrderNumber, sum (Amount) FROM Table1 Group by OrderNumber'을 시도 했습니까? –