線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1181
推到 Plurk!
推到 Facebook!

有這樣的SQL語法嗎?

尚未結案
sera
一般會員


發表:10
回覆:19
積分:5
註冊:2003-06-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-27 15:07:22 IP:211.72.xxx.xxx 未訂閱
如果我查詢完的結果如下 NAME SEX BOOK ------------------ AAAA 女 X1 BBBB 男 X1 AAAA 女 X3 AAAA 女 X5 BBBB 男 X2 CCCC 女 X4 AAAA 女 X6 CCCC 女 X5 我希望可以用NAME來GROUP BY資料,但BOOK欄位的資料可以合併 例如: NAME SEX ADDBOOK -------------------------- AAAA 女 X1X3X5X6 BBBB 男 X1X2 CCCC 女 X4X5 希望有人了解我的意思,請大家幫忙了~~先謝
Akqj1098
一般會員


發表:14
回覆:60
積分:14
註冊:2002-05-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-27 15:39:47 IP:211.23.xxx.xxx 未訂閱
抱歉~~不是很瞭解「合併」是什麼意思 還有,Book是什麼型態?string?number? 大概猜一下是不是這樣寫  >
sera
一般會員


發表:10
回覆:19
積分:5
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-27 16:08:05 IP:211.72.xxx.xxx 未訂閱
引言: Akqj1098,謝謝你~~~ 但BOOK是文字型態的,我用SUM()是不能執行的, 另外如果除了列與列的合併,是不是也能做到欄跟欄的合併 例如 欄位 [NAME],[SEX],[BOOK],[AMOUNT] (全部文字型態 ) AAA 女 X 1 AAA 女 X 2 CCC 女 X 1 CCC 女 X 3 合併成 [NAME],[SEX],[BOOK AMOUNT] AAA 女 X1X2 CCC 女 X1X3 不知道有沒有這樣的寫法~~
sera
一般會員


發表:10
回覆:19
積分:5
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-27 17:16:36 IP:211.72.xxx.xxx 未訂閱
呵~~試出一半了~~自己回答 欄跟欄的合併我已經知道了 select name,sex,(book&amount) as [book amount] frome table 就可以將book和amount合併為一個[book amount]的欄位 但是[book amount]是文字型態,所以sum()不能用,不知有沒有做文字累加的函數可以用??
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-27 19:55:18 IP:203.95.xxx.xxx 未訂閱
這是一種將縱向資料轉橫向資料的功能(但是又不是 aggregate 的行為), 是沒有這種 sql 的語法可以達成, 只能用變通方式來進行, 但是效能會很差, 看是否可以先提出你的需求, 再看用什麼方式來進行!
sera
一般會員


發表:10
回覆:19
積分:5
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-28 00:26:12 IP:210.202.xxx.xxx 未訂閱
timhuang 謝謝你~~ 我這樣做的目的,是因為這是一個要用來郵寄資料,因此要印成標籤時 同一個人只要寄一次,因此要用group by來群組相同的資料, 但又要保留各別明細,好印在標籤上, 所以我才會想看是否能將資料串連成一個欄位~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-28 10:40:09 IP:61.62.xxx.xxx 未訂閱
若是這樣的話, 一次的 SQL Command 是沒有辦法達成的, 建議的作法如下:    1. select name, sex, count(*) from table group by name, sex 用一個 TQuery 達成 (Query1)
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select name, sex, count(*) from table group by name, sex');
  Query1.Open;
2. select book from table where name=Query1的name and sex=Query1的sex 用 Query2
  While not Query1.Eof do 
  Begin
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('select book from table where name=''' Query1.FieldByName('name').AsString ''' and sex=''' Query1.FieldByName('sex').AsString ''' ');
    Query2.Open;
    While not Query2.Eof do
    Begin
      strDetail := strDetail   Query2.FieldByName('book').AsString;  //strDetail 為字串
    end;
  end;
如此一來就利用一共兩個TQuery 和兩個迴圈來進行你要達到的功能了!
系統時間:2024-05-18 5:52:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!