全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1413
推到 Plurk!
推到 Facebook!

使用 SQL 是否可以達成以下功能的 Grid 輸出

答題得分者是:aftcast
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-11-07 08:13:18 IP:122.146.xxx.xxx 訂閱
Hi,各位先進大家好:
小弟使用Firemonkey
有一 Table Employee
ID Name HireDate
0001 John 2010/2/3
0002 Jack 2010/3/5
0003 Mary 2010/5/6
0004 Mac 1999/10/10
想要輸出到一個 Grid,但若所選的不存在於Table仍要列出,如 Select * from Employee where ID in ('0002', '0004', '0008', '0010')
Grid內容要為
ID Name HireDate
0002 Jack 2010/3/5
0004 Mac 1999/10/10
0008 null null
0010 null null
目前想到的是先將 '0002', '0004', '0008', '0010' 塞進 Grid,
再將 SQL 所查詢到的資料在 Grid中尋找相同 ID再填入,
是否有更 Smart的解法?
謝謝!
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-11-07 14:46:30 IP:221.120.xxx.xxx 未訂閱
原本 Table 裡沒有的值,怎麼讓 SQL 生出來?


===================引 用 blue 文 章===================
Hi,各位先進大家好:
小弟使用Firemonkey
有一 Table Employee
ID Name HireDate
0001 John 2010/2/3
0002 Jack 2010/3/5
0003 Mary 2010/5/6
0004 Mac 1999/10/10
想要輸出到一個 Grid,但若所選的不存在於Table仍要列出,如 Select * from Employee where ID in ('0002', '0004', '0008', '0010')
Grid內容要為
ID Name HireDate
0002 Jack 2010/3/5
0004 Mac 1999/10/10
0008 null null
0010 null null
目前想到的是先將 '0002', '0004', '0008', '0010' 塞進 Grid,
再將 SQL 所查詢到的資料在 Grid中尋找相同 ID再填入,
是否有更 Smart的解法?
謝謝!
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-11-08 00:06:10 IP:202.39.xxx.xxx 訂閱
曾有人問,可以不可以把『冷』加入到一個密閉空間去?
其實,冰箱是把『熱』從一個密閉空間抽出來,上面的問題是不可能有答案的!

您的目的,大概是要讓 User 知道 '0008','0010' 這兩個 ID 尚未被使用到,
那就照您的方法用就是了,既然是非標準的問題,只好用非標準的解法;
能達到您的需求就是好方法,可能沒更方便的方法了!
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-11-10 00:15:07 IP:114.32.xxx.xxx 訂閱
我沒有你的資料表,所以就用我自己的資料表測一下我的寫法,是ok的。請參照後自己依樣畫葫蘆。

SELECT a.cno, b.* from (SELECT '001' as cno UNION select '002' UNION select '099') as a
LEFT OUTER JOIN stcust as b
on a.cno = b.cno;

把我的 cno 換成你的id,我的stcust 換成你的 employee,大致上就可以 (但請自己試,我此刻快睡著,沒腦力看細節)

該sql就會回傳你要的樣子,然後塞 grid裡。

ps 以上在mysql測試是ok的 (因我看你之前在mysql問,所以就用mysql測了。若不是mysql,就依類似概念來寫,多數高階一點的db都會有那樣的語法。



===================引 用 blue 文 章===================
Hi,各位先進大家好:
小弟使用Firemonkey
有一 Table Employee
ID Name HireDate
0001 John 2010/2/3
0002 Jack 2010/3/5
0003 Mary 2010/5/6
0004 Mac 1999/10/10
想要輸出到一個 Grid,但若所選的不存在於Table仍要列出,如 Select * from Employee where ID in ('0002', '0004', '0008', '0010')
Grid內容要為
ID Name HireDate
0002 Jack 2010/3/5
0004 Mac 1999/10/10
0008 null null
0010 null null
目前想到的是先將 '0002', '0004', '0008', '0010' 塞進 Grid,
再將 SQL 所查詢到的資料在 Grid中尋找相同 ID再填入,
是否有更 Smart的解法?
謝謝!
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-11-23 17:36:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!