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

這段 SQL 要怎麼下?

答題得分者是:pillar62
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-08 23:41:48 IP:61.31.xxx.xxx 未訂閱
小弟的SQL 語法實在有夠爛,煩請各大大幫忙一下。 有一資料庫如下:
ID      QTY  TradeDate
------- ---- -----------
A0001    1   2005/05/06
A0001    2   2005/05/04
A0001    8   2005/04/28
A0002    5   2005/05/04
A0002    3   2005/05/03
........    查詢後資料必須要這樣:如下
ID      QTY  TradeDate
------- ---- -----------
A0001    1   2005/05/06
A0002    5   2005/05/04
........
搜索 各別 ID 最後一次交易列表。 然而針對查詢後的結果,必須能直接修改或刪除。 請指教。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-09 05:08:22 IP:211.74.xxx.xxx 未訂閱
select * from table group by id order by id, tradedate; 因為不確定是否會排序排好。所以另外加上 order by id, tradedate 而選出來的東西,自己你可以去利用它來編修。 這要看你怎麼用元件了。 無關SQL語法了。 不然你還是可以利用 UPDATE table SET field1=xxxxx, field2=yyy WHERE fieldx=zzz; 這樣可以把 fieldx 欄位為 zzz 的那一筆中的 field1 內容更改成 xxxxx, field2 內容更改成 yyy(可能不止一筆) 要刪除只要 DELETE FROM table WHERE fieldx=zzz; 這樣就可以把 fieldx 欄位為 zzz 的那筆資料刪除。(可能不止一筆) 另外建議: 在 table 建立時。要有個 auto increment 的 sno 欄位。 這樣在做編修時。比較好下條件。
timhuang
尊榮會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-09 10:17:19 IP:203.95.xxx.xxx 未訂閱
Hi, 請問一下, 該 table 的主鍵為何? 什麼資料庫呢?
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-09 10:56:46 IP:210.64.xxx.xxx 未訂閱
你好 試試看sql語法用 select * from tbl where TradeDate in (select max(TradeDate) from tbl group by id)這樣子應該可以取出 ID 最後一次交易的列表!如果你是用Tquery的話就要搭配 updatesql以及sql屬性裡面的cacheupdate = True, RsquestLive也要設定成True這樣應該就可以達到你的需求!!試試看吧!! Pillar Wang
------
Pillar Wang
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-09 17:11:50 IP:61.222.xxx.xxx 未訂閱
暗黑 兄 您的方式我試過,在Select 時會出現錯誤訊息。 不曉得 是否為 資料庫的關係。 用 pillar62 兄所提供的方式,可以查詢的出來。 不過有點慢!看起來是想當然爾的是。 先前就是想用這個方法,但一直忘了怎麼下。 之前用過,唉!學了又忘..... 謝謝各位大大! ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-09 17:35:23 IP:221.169.xxx.xxx 未訂閱
我用的是 MySQL ^_^
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-09 22:07:16 IP:220.134.xxx.xxx 未訂閱
select * from tbl where TradeDate in (select max(TradeDate) from tbl group by id) 這樣要注意同id 會不會有同tradedate的資料,會造成多筆喔.. 我都用暫存的TABLE去存最後一次的記錄 雖然會有點麻煩...
系統時間:2024-06-28 2:22:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!