1

我有一个带有成员 ID 的 SQL 表。

每个成员都有关于表中列出的保险索赔的信息。

一栏列出了与 相关的保险 ID Member-ID

例如:-

|Member ID    | Insurance Code   |
----------------------------------
|C#$#@@!1231  | 67               |

现在的问题是同一个成员可能有不同的保险代码#'s 作为以前索赔的一部分。

例如,在 2010 年 -2011 年期间,会员的索赔代码 = 67 但对于 2011 - 2012 年,会员的索赔代码 = 3

现在,当我创建一个 SQL 查询时,我只得到一个声明代码的值......我怎样才能得到所有的值,比如 67、3 和 110?这样我就可以回应该会员参与的所有索赔。

// SQL QUERY to gather member information.
DMS.ADOQuery1.SQL.Clear;
DMS.ADOQuery1.SQL.Add('select HPFROMDT, HPthruDt, MEMBERKEY, MEMBHPKEY, OPFROMDT, OPTHRUDT, HPCODEKEY' +
                      ' from MEMBHP' +
                      ' where MEMBERKEY = ''' + MembKey + '''  and OPTHRUDT >= ''' + init_date + ''' and OPFROMDT <= ''' + final_date +''' and OPFROMDT < OPTHRUDT'
                     );

//  Showmessage(DMS.ADOQuery1.SQL[0]);

DMS.ADOQuery1.Open;

// Adding the query values to the appropriate variables.
HPCodeKey := (DMS.ADOQuery1.FieldByNAme('HPCODEKEY').AsString);

DMS.ADOQuery1.Close;
4

1 回答 1

1

检查查询返回的所有记录,而不仅仅是第一个。还要检查 SQL 语句中的过滤日期(where 条件)。

// SQL QUERY to gather member information.
DMS.ADOQuery1.SQL.Clear;
DMS.ADOQuery1.SQL.Add('select HPFROMDT, HPthruDt, MEMBERKEY, MEMBHPKEY, OPFROMDT,      OPTHRUDT, HPCODEKEY' +
                  ' from MEMBHP' +
                  ' where MEMBERKEY = ''' + MembKey + '''  and OPTHRUDT >= ''' +   init_date + ''' and OPFROMDT <= ''' + final_date +''' and OPFROMDT < OPTHRUDT'
                 );

//  Showmessage(DMS.ADOQuery1.SQL[0]);

DMS.ADOQuery1.Open;

while not DMS.ADOQuery1.Eof do
begin
  // Adding the query values to the appropriate variables.
  Showmessage(DMS.ADOQuery1.FieldByNAme('HPCODEKEY').AsString);
  DMS.ADOQuery1.Next;
end;
DMS.ADOQuery1.Close;
于 2012-11-08T18:50:37.163 回答