to:迷糊
我這樣做是在一個統計語句裡面的,裡面最多的時候連接四個表,有三個上2萬,一個也差不多一萬,在語句方面我覺得沒有更好的啦(可能是我比較笨)
最慢的就是我所說的這個數據庫
A表 bh,SL 2萬以上記錄
B表 bh,dbh,ID 2萬以上
C表 dbh,RQ 差不多2萬
D表 ID MC 最少也有5000
統計A表的SL。條件:A表.bh=B表.bh B表.dbh=C表.dbh D表.ID=B表.ID C表.RQ可有可無(根據條件而定),還有一點,有些C表的ID在D表裡面沒有對應的ID,那時MC顯示為空
得到結果是 sum(A表.SL), C表.ID, D表.MC
請教有何語句才能更快
[blue]SELECT[/blue] b.ID, MC =(SELECT MC FROM OPENROWSET('msdasql', 'dsn=testDSN','select MC,ID from D表') AS d WHERE d.ID = b.ID),
SUM(a.SL) AS ZL, DW = 'KG'
[blue]FROM [/blue]
OPENROWSET('msdasql', 'dsn=testDSN', 'select SL,DBH from A表') AS a,
OPENROWSET('msdasql', 'dsn=testDSN', 'select aa.DBH,aa.ID from B表 aa,C表 bb where aa.DBH=bb.DBH ') AS b
[blue]WHERE[/blue] a.DBH = b.DBH [red]/*注:因為A表 as a後面還有條件,就沒有和B表,C表一起關聯查詢*/[/red]
[blue]GROUP BY[/blue] b.ID
上面的語句有什麼更快的方法實現,請多指教!!