Q&A

  • Query의 결과로 곱하고 나누기 할려면.. ?
전 신장률이라는 것을 계산하기 위해서 그전에 얻어야 할 값을 구했습니다.

그런데.. 신장률은 위의 쿼리의 결과값을 가지고 계산을 해야 하는데.. 잘 않됩니다.

계산하기 위해선.. Type도 맞춰야 하는 것 같은데 .. 잘 않됩니다. 제 쿼리문은 다음과 같습니다.

procedure TFrmjiwonmoney.N1Click(Sender: TObject);

var Gijunqty,dangwolqty :string; //월누계,일평균

Gijun,Dangwol : String;

sinjang : String;

begin

Gijunqty:=' select sum(qty/:Pansu*:gajung) GijunQty from jumoongejepum'+

' where vdate>=:stdate and vdate<=:enddate'+

' and jepum in (:jepumcode)'; //제품코드를 받을 Parameter

//월누계 -> 월누계/판매일수=일평균 => 일평균*가중치=기준수량



DangwolQty:=' select sum(qty) dangwolqty from jumoongejepum'+

' where vdate>=:stdate1 and vdate<=:enddate1'+

' and jepum in (:jepumcode)';

//당월 수량을 합산. => 신장률=당월수량/기준수량 X 100

with query1 do

begin

Close;

SQL.Clear;

SQL.Add('gijunqty');

ParamByName('Pansu').AsString:=EditPansu.Text; //판매일수

ParamByName('stdate').AsString:=MaskEditstDate.Text; //시작일자

ParamByName('enddate').AsString:=MaskEditendDate.Text;//종료일자

ParamByName('gajung').AsString:=Editgajung.Text; //가중치

ParamByName('jepumcode').AsString:=Editjepumcode.Text; //제품코드

Open;

Gijun:=FieldByName('GijunQty').AsString;// 기준수량 변수

end;//기준수량 쿼리끝

with query1 do

begin

Close;

SQL.Clear;

SQL.Add(DangwolQty); //당월수량 합산

ParamByName('stdate1').AsString:=MaskEditstDate1.Text;

ParamByName('enddate1').AsString:=MaskEditstDate1.Text;

ParamByName('jepumcode').AsString:=MaskEditendDate1.Text;

open;

Dangwol:=FieldByName('dangwolqty').AsString; //당월수량 변수

end;

begin /신장률 = 당월실적(Dangwol)/기준수량(Gijun) x 100

Sinjang := Dangwol/Gijun * 100 ; => 이 표현이 맞는지도 궁금합니다.



부탁드립니다. 제 쿼리문 좀 봐주세요..





1  COMMENTS
  • Profile
    문영철 2000.04.07 18:18
    이렇게 바꿔보세요.



    > sinjang : String;

    ==> sinjang : double;



    > Sinjang := Dangwol/Gijun * 100 ; => 이 표현이 맞는지도 궁금합니다.

    ==>

    sinjang := strtoint(dangwol) / strtoint(Gijun) * 100



    글구 sinjang 을 edit 에 뿌리시려면

    edit1.text := floattostr(sinjang);