查看完整版本: [TSQL] 語法能不能限制相同名稱只讀2個
頁: [1]

koala888 發表於 2016-1-10 01:55 AM

[TSQL] 語法能不能限制相同名稱只讀2個

本帖最後由 snowflying 於 2016-2-13 12:10 AM 編輯

我最近在坐公車時刻表,我要用SQL語法,只選取一輪,每站只顯示最接近的2班車時刻

如果我的時刻表是這樣,現在的時間 13:55
Bus        Stop           StartTime
1        FAB8          12:00
2        FAB8         12:10
3        F14P1        12:25
4        F14P1        12:35
5        F6                12:40
6        F6                12:50
7        BP2B         13:00
8        BP2B         13:10
9        F14P5        13:30
10        F14P5        13:40
11        F14P7        13:50
12        FAB8         14:00
13        FAB8         14:10
14        F14P1        14:25
15        F14P1        14:35
16        F6              14:40
17        F6                14:50
18        BP2B                15:00
19        BP2B                15:10
20        F14P5        15:30
21        F14P5        15:40
22        F14P7        15:50

那出來的時刻表就要像這樣
FAB8  14:00  往 F14P1  
          14:10  往 F14P1  
F14P1 14:25  往 F6  
           14:35  往 F6  
F6 14:40  往 BP2B  
     14:50  往 BP2B  
BP2B 13:00  往 F14P5  
          13:10  往 F14P5  
F14P5 13:30  往 F14P3  
           13:40  往 F14P7  
F14P7 13:50  往 F14P3  
           15:50  往 F14P3

我現在想知道有沒有TSQL語法限制相同的名稱只讀2個,像上面那樣同一站點只顯示最接近的兩班車,後面如果還有班次不顯示,要怎麼做呢?誰知道可以告訴我,謝謝
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

8vpp8vpp 發表於 2016-2-9 10:08 PM

本帖最後由 8vpp8vpp 於 2016-2-9 10:17 PM 編輯

我的想法是先將STOP GROUP出來,再JOIN出離最近的兩班車,
至於 往 XXXX STOP就不列出了~

不過現在沒資料庫可以TRY TSQL,也不確定能不能,
但大概的邏輯是這樣啦~你在試試看囉


select Stop, tb_stoptime2.startime
  from tb_stoptime left join (
                                        select top 2 stop, startime
                                          from tb_stoptime
                                        where startime >...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]