2013-10-01 39 views
-2

我正在使用帶有delphi 7的訪問數據庫,並且有註冊學生的記錄。我想要一個代碼,可以顯示數據庫中的男性學生數量形式以及另一個標籤上的女性學生。訪問數據庫中的字段名是性別,而數據類型是男性和女性。因此,如果男性學生的人數是20和30女性,它應該在一個標籤上顯示20,在另一個標籤上顯示30個女性。是否有一個簡單的代碼可以使用adoquery1和datasource1來完成此操作,我曾經用這個代碼來保存數據庫中的記錄? 字段名稱包括 名字其他名稱和性別如何在標籤中顯示已過濾記錄的數量

+4

是的,有一種方法可以在數據源中使用adoquery。但是,我不能提供幫助,因爲您沒有提供有關數據庫架構的信息,沒有示例數據,沒有您希望獲得的輸出示例,也沒有嘗試自己編寫SQL這樣做。 (這是一個使用'COUNT'和'GROUP BY'的簡單查詢,但沒有關於數據庫模式的信息,因此很難提供示例。)請[編輯]提供更具體的信息,以便我們嘗試和幫助您。我們無法從我們坐的位置看到您的屏幕。 –

回答

1

這樣的事情應該可以做到。

AdoQuery1.Active:= false; 
AdoQuery1.SQL.Text:= ' select gender, count(*) as cnt from atable ' 
        +' where something = 10 ' 
        +' group by gender ' 
        +' order by (gender = "M") '; 
AdoQuery1.Active:= true; 
DataSrc:= TDataSource.Create(Self); 
DataSrc.DataSet:= AdoQuery1; 
DataSrc.Enabled:= true; 
DataSrc.FindFirst; 
if lowercase((DataSrc.FieldByName('gender')) = 'm' then begin 
    LabelMale.Caption:= DataSrc.FieldByName('cnt').AsString; 
    Success:= DataSrc.FindNext; 
end 
else LabelMale.Caption:= 'none'; 
if (Success) and (lowercase((DataSrc.FieldByName('gender')) = 'f') then begin 
    LabelFemale.Caption:= DataSrc.FieldByName('cnt').AsString; 
end 
else LabelFemale.Caption:= 'none'; 
相關問題