台灣最大程式設計社群網站
線上人數
1052
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 有關資料列相同合併
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有關資料列相同合併
價值 : 100 QP  點閱數:700 回應數:3
樓主

lethal
初學者
621 88
3281 265
發送站內信

請教學長:

select * from tb 後,recordset 長這樣:

廠牌 進出貨 日期
-----------------------
福特  入  2012/3/3
三菱  入  2012/5/10
福特  出  2013/4/4
裕隆  入  2014/3/5
喜美  入  2014/2/1
裕隆  出  2015/2/7

請問要怎麼寫,才能變成這樣

福特  2012/3/3  2013/4/4
三菱  2012/5/10
裕隆  2014/3/5  2015/2/7
喜美  2014/2/1

有想過用 if 判斷,或存放在陣列中處理,但好像都不是好方法。

本篇文章發表於2015-06-28 23:29
1樓
最有價值解答

孤獨是唯一永恆
捐贈 VP 給 Daimom 檢舉此回應
改SQL?
e.g.
本篇文章回覆於2015-06-29 08:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
是要將所有同廠牌的出/入日期都列在同一排中?還是一入一出?
如果是前者建議用兩次搜尋來進行
第一次只搜尋廠牌,然後在讀取資料的迴圈中搜尋該廠牌的出入日期資料

如果是後者可以試試這樣
SELECT a.`car`,b.`indate`,c.`outday` FROM `tb` a LEFT JOIN (SELECT `car`,`inoutdate` AS `indate` FROM `tb` WHERE `inout`='入') b ON a.`car`=b.`car` LEFT JOIN (SELECT `car`,`inoutdate` AS `outdate` FROM `tb` WHERE `inout`='出') ON a.`car`=c.`car`;
不過這個有限制,資料表中的資料同廠牌必須只有一入一出

如果是多入多出恐怕得請教其他大大,我自己能想到的辦法極度麻煩和複雜
本篇文章回覆於2015-06-29 10:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

lethal
檢舉此回應
本來想用程式來判斷,最後還是用SQL解決了:

TRANSFORM Max(tb.[日期]) AS 日期MAX
SELECT tb.[廠牌]
FROM tb
GROUP BY tb.[廠牌]
PIVOT tb.[進出貨];
本篇文章回覆於2015-06-29 22:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.