none
[VB 2005]如何把兩個Select 放入同一個DataTable內 RRS feed

  • 問題

  •  

    各位老師好

    例如這樣好了

    我做兩個Select 在同一個資料表

    Select * from dt1 where Num > 100

    Select * from dt1 Where Num > 50 And Num < 80

     

    我如何把這兩個Select  放入同一個DataTable內

     

    謝謝

     

    2007年12月4日 上午 02:30

解答

  • 請你先試過再說。

    都已經告訴你方法了。

     

    2007年12月4日 上午 05:58
    版主
  •  

    Select * from dt1 where Num > 100

    UNION ALL

    Select * from dt1 Where Num > 50 And Num < 80

     

    改成這樣即可

     

    UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重複

    2007年12月4日 上午 06:02
  • 我之前的作法是...
    把第二個之後的Select查詢到一個暫存的DataTabel去..
    然後用 DataTable 的 【Merge】方法加進去....
    這樣就可以一直加進去了..
    但是每一次加進去的資料結構要一樣...
    DataTable要設定Key值...
    你試看看吧~~
    2007年12月5日 上午 01:09

所有回覆

  • 程式碼區塊

    Select * from dt1 where Num > 100

    UNION

    Select * from dt1 Where Num > 50 And Num < 80

     

     

    但條件是這兩個查詢回傳的欄位數量與資料型態都一樣。

    2007年12月4日 上午 02:49
    版主
  •  

    何不寫成一個Select呢

    Select * from dt1 where (Num > 100)  OR  (Num > 50 And Num < 80)

    這樣應該比較容易

    2007年12月4日 上午 03:18
  •  

    我想各位大大可能誤會我的意思了

    不好意思

    我再說一次

    例如一個資料表

    dt1   

    Num     Value

    1           11

    2           22

    3           33

    4           44

    5           55

    6           66

    7           77

    8           88

    9           99

    10         111

    這樣好了

    Select * from dt1 Where Num > 8

    會變成

    Num   Value

    9          99

    10        111

    Select * from dt1 Where Num > 7

     

    會是

    Num    Value

    8          88

    9          99

    10         111

     

     

    我要這兩個結合在一張DataTable

    變成

    Num    Value

    9           99

    10         111

    8           88

    9           99

    10         111

     

     

    這樣

     

    謝謝

    2007年12月4日 上午 05:47
  • 請你先試過再說。

    都已經告訴你方法了。

     

    2007年12月4日 上午 05:58
    版主
  •  

    Select * from dt1 where Num > 100

    UNION ALL

    Select * from dt1 Where Num > 50 And Num < 80

     

    改成這樣即可

     

    UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重複

    2007年12月4日 上午 06:02
  •  

    謝謝  小朱與MattLee大大

     

    我先去試試看

     

     

    2007年12月4日 上午 06:04
  • 各位老師

    你們說的方法似乎是固定的,抱歉剛沒有說明清楚

     

    可是我要做的是動態的

    就好像一個資料表

    使用者可以設定

    第一個過濾  Select * from dt1 Where Num > 10

     第二個過濾 Select * from dt1 Where Num < 5

    .

    .

    .

     

     

    過濾的數量不一定,使用者可以自己增加

     

    最後集合在一張DataTable裡面然後給ReportViewer顯示

     

    不知道該從什麼方向去做

     

    謝謝

    2007年12月4日 上午 08:34
  • 我之前的作法是...
    把第二個之後的Select查詢到一個暫存的DataTabel去..
    然後用 DataTable 的 【Merge】方法加進去....
    這樣就可以一直加進去了..
    但是每一次加進去的資料結構要一樣...
    DataTable要設定Key值...
    你試看看吧~~
    2007年12月5日 上午 01:09
  •  

    謝謝1119大大

    我用Merge方法試出來了

     

    還有謝謝各位老師的幫忙

    謝謝!

    2007年12月6日 上午 03:08