又以群組把劃分把相同欄位都只印在一列應如何作? |
答題得分者是:Justmade
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
小弟在table中欄位資料如下 姓名 月份 編號
黃小小 2003/03 001
黃小小 2003/04 002
羅大大 2003/02 001
羅大大 2003/03 002
羅大大 2003/04 003
陳總統 2003/01 001
陳總統 2003/02 002 請教 格式是姓名相同的欄位印在同一列
格式如下
姓名 日期 編號 黃小小 2003/03,2003/04 001,002 羅大大 2003/02,2003/03,2003/04 001,002,003 陳總統 2003/01,2003/02 001,002小弟是用qreport作報表 應如何做? 謝謝幫忙 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/05/22 06:01:26 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/05/22 06:18:46 發表人 - huangeider 於 2003/05/22 06:19:24 |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
姓名 月份 編號
黃小小 2003/03 001
黃小小 2003/04 002
羅大大 2003/02 001
羅大大 2003/03 002
羅大大 2003/04 003
陳總統 2003/01 001
陳總統 2003/02 002 請教 格式是姓名相同的欄位印在同一列
格式如下 姓名 日期 編號
黃小小 2003/03,2003/04 001,002
羅大大 2003/02,2003/03,2003/04 001,002,003
陳總統 2003/01,2003/02 001,002 您这个一句SQL是不能完成的,程序如下: //将每条您所需的记录存到
name[i],mydate[i],myno[i] 记录数i
如果您的记录很多,您可以使用动态数组来定义 var
name:array[0..100] of string;
mydate:array[0..100] of string;
myno:array[0..100] of string;
i:integer;
begin
i:=0;
query1.SQL.Clear ;
query1.sql.add('select 姓名 from tablename group by 姓名');
query1.close;
query1.open ;
while not query1.eof do
begin
query2.sql.clear;
query2.sql.add('select * from tablename where 姓名=''' query1.fieldbyname('姓名').asstring '''');
query2.close;
query2.open ;
if not query2.eof then name[i]:=query2.fieldbyname('姓名').asstring;
while not query2.eof do
begin
mydate[i]:=mydate[i] ',' query2.fieldbyname('月份').asstring;
myno[i]:=mydate[i] ',' query2.fieldbyname('編號').asstring;
end;
i:=i 1;
end;
query2.close;
query1.close; end; 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
1.建議用TempTable來作,該TempTable開三各欄位,姓名.月份.編號,皆為文字欄位型態,月份及編號欄位長度開長些.
2.用Query 把資料選出並Order by 姓名,跑回圈將資料塞進該TempTable,然後將同一人的月份全部塞在同一個月份的欄位,
編號也是,這樣就可以將該人的所有資料變成一筆資料了.
3.Report的Query再從該SELECT * FROM Temptable,這樣就取得你要的報表型式了.
TRY TRY SEE.
引言: 小弟在table中欄位資料如下 姓名 月份 編號 黃小小 2003/03 001 黃小小 2003/04 002 羅大大 2003/02 001 羅大大 2003/03 002 羅大大 2003/04 003 陳總統 2003/01 001 陳總統 2003/02 002 請教 格式是姓名相同的欄位印在同一列 格式如下發表人 - chih 於 2003/05/22 08:06:35姓名 日期 編號 黃小小 2003/03,2003/04 001,002 羅大大 2003/02,2003/03,2003/04 001,002,003 陳總統 2003/01,2003/02 001,002小弟是用qreport作報表 應如何做? 謝謝幫忙 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/05/22 06:01:26 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/05/22 06:18:46 發表人 - huangeider 於 2003/05/22 06:19:24 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
wnhoo,
請問讀入 Array 後 甚做報表呢? 可否解釋清楚一點。 Chih 兄的做法應可做到但麻煩一點所以我也來個建議希望 Chih 兄別介意 Query1.SQL : select * from tablename order by 姓名 不用 QRDBText, 用三個 QRLabel Report 的 DataSet 設 Query1 DataBand 的 BeforePrint :
procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRLabel1.Caption := Query1.FieldBYName('姓名').AsString; QRLabel2.Caption := Query1.FieldBYName('月份').AsString; QRLabel3.Caption := Query1.FieldBYName('編號').AsString; try Query1.Next; while (Query1.FieldByName('姓名').Value = QRLabel1.Caption) and not Query1.Eof do begin QRLabel2.Caption := QRLabel2.Caption ',' Query1.FieldBYName('月份').AsString; QRLabel3.Caption := QRLabel3.Caption ',' Query1.FieldBYName('編號').AsString; Query1.Next; end; finally if not Query1.Eof then Query1.Prior; end; end;測試過可行。 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
eric_shi
一般會員 發表:5 回覆:19 積分:4 註冊:2002-07-20 發送簡訊給我 |
小弟不才
剛剛不小心用SQL把這個案例給作出來了
請參考如下:
--------------------------------------------------------------------
SELECT 姓名,LTRIM(MIN(T_DATESTR)) T_DATESTR
FROM (
select t.姓名,SUBSTR(LPAD(' ',LEVEL-1)||substr(sys_connect_by_path(t.日期,','),2,30),1,30) t_datestr
from (
select 姓名,日期
,編號||姓名 t_fno
,LTRIM(to_char(to_number(編號) 1,'000')||姓名) t_pno
from Table ) t
CONNECT BY PRIOR T_PNO=T_FNO )
GROUP BY 姓名
---------------------------------------------------------------------
請各位大大指教
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |