======================================================================
QueryTemp.Close;
QueryTemp.SQL.Clear;
QueryTemp.SQL.Add(' SELECT MAX(sawoncode) As ExSawon, Max(bonbong + (sudang*0.1) - bonbong) AS EXVAL ');
QueryTemp.SQL.Add(' FROM SAL_KUB');
QueryTemp.SQL.Add(' WHERE Sudang<=200 ');
QueryTemp.Open;
fno := QueryTemp.Fieldbyname('EXVAL').asinteger; // 첫번째 숫자
QueryTemp.Close;
QueryTemp.SQL.Clear;
QueryTemp.SQL.Add(' SELECT MAX(sawoncode) As ExSawon, Max(bonbong+(sudang*0.15)- (bonbong*0.03)) AS EXVAL ');
QueryTemp.SQL.Add(' FROM SAL_KUB');
QueryTemp.SQL.Add(' WHERE Sudang Between 201 and 300 ');
QueryTemp.Open;
sno := QueryTemp.Fieldbyname('EXVAL').asinteger; //두번째 숫자
QueryTemp.Close;
QueryTemp.SQL.Clear;
QueryTemp.SQL.Add(' SELECT MAX(sawoncode) As ExSawon, Max(bonbong+(sudang*0.18)- (bonbong*0.05)) AS EXVAL ');
QueryTemp.SQL.Add(' FROM SAL_KUB');
QueryTemp.SQL.Add(' WHERE Sudang Between 301 and 400 ');
QueryTemp.Open;
tno := QueryTemp.Fieldbyname('EXVAL').asinteger; //세번째 숫자
QueryTemp.Close;
QueryTemp.SQL.Clear;
QueryTemp.SQL.Add(' SELECT MAX(sawoncode) As ExSawon, Max(bonbong+(sudang*0.19)- (bonbong*0.07)) AS EXVAL ');
QueryTemp.SQL.Add(' FROM SAL_KUB');
QueryTemp.SQL.Add(' WHERE Sudang >= 400 ');
QueryTemp.Open;
fono := QueryTemp.Fieldbyname('EXVAL').asinteger; //네번째 숫자
======================= 소스 임다.===================================
위에서 처럼 디비에서 계산하여 나온 임의의 네가지 숫자의 최대값을 어떻게 구하면 될까요?? (단,네숫자 모두 얼마 인지는 정확히 모르는 상황임)
제발 고수님들 갈켜 주세요??
급합니다.... 제발 플리즈~!~!~!~
MaxValue:integer;
...
..
MaxValue:=fno; //가장 크다고 가정
..
if MaxValue<sno then
MaxValue:=sno;
if MaxValue<tno then
MaxValue:=tno;
..
if MaxValue<fono then
MaxValue:=fono;
이렇게 할수도 있지만 배열을 이용하는게 더 간단하겠군요.
const
sudangR:array[0..3] of real=(0.1,0.15,0.18,0.19);
BonBongR:array[0..3] of real=(1,0.03,0.05,0.07);
var
MaxValue:integer;
myVar:array [0..3]of integer;
cnt:byte;
...
MaxValue:=0;
for cnt:=0 to 3 do begin
QueryTemp.Close;
QueryTemp.SQL.Clear;
QueryTemp.SQL.Add(' SELECT MAX(sawoncode) As ExSawon,
Max (bonbong + (sudang*sudangR[cnt]) - (bonbong*bonBongR[cnt])) AS EXVAL ');
QueryTemp.SQL.Add(' FROM SAL_KUB');
case cnt of
0: QueryTemp.SQL.Add(' WHERE Sudang<=200 ');
1: QueryTemp.SQL.Add(' WHERE Sudang Between 201 and 300 ');
2: QueryTemp.SQL.Add(' WHERE Sudang Between 301 and 400 ');
// 401 아닐까요? 아님 >400 이던가.
3: QueryTemp.SQL.Add(' WHERE Sudang >= 400 ');
end;
QueryTemp.Open;
myVar[cnt] := QueryTemp.Fieldbyname('EXVAL').asinteger;
if MaxValue<myVar[cnt] then
MaxValue:= myVar[cnt];
end;