2012-12-29 50 views
-1
select rm_id as 'ID' 
     bk_branch as 'BRANCH' 
     br_name as 'BANK REP.' 
     bs_name as 'ESCORT' 
     dt_rep as 'DATE' 
     rep_time as 'TIME' 
     amt 
     inv_no 
     total_box 
     box_no 
     note_state 
     dm_state 
     1 
     2 
     10 
     20 
     50 
     100 
     500 
     1000 
     tp 
     tv 
     tp_ex1 
     tv_ex1 
     tp_m 
     tv_m   
from bk_det 
inner join bk_rep 
    on bk_det.rm_id = bk_rep.rm_id 
inner join bk_sec 
    on bk_rep.rm_id = bk_sec.rm_id 
inner join mut_det 
    on bk_sec.rm_id = mut_det.rm_id 
inner join rm_det 
    on mut_det.rm_id = rm_det.rm_id 
inner join soil_det 
    on rm_det.rm_id = soil_det.rm_id 

我從桌子上面寫的代碼,但沒有運行其示值誤差:如何運行SQL查詢有關innerjoin

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'bk_branch'.

請幫助.. !!

+3

您需要在每個列後選擇**逗號**! –

+0

語法檢查器在第一個錯誤處停止時有點令人困惑。當然,有很多錯誤,並且看到可能幫助您識別模式。一種診斷方法可能是刪除JOIN。你在一張桌子上的選擇不會奏效。從一個簡單的SQL語句開始,只有在它工作時才添加到它。然後,當它破裂時,你知道問題出在哪裏。 – DOK

+1

除了逗號之外,您應該養成在每個列參考之前放置別名的習慣。其中一個「rm_id」不明確,所以會產生錯誤。你需要像'bk_det.rm_id'這樣的東西。 –

回答

3

您需要將SELECT中的字段分開, s。連接本身在語法上看起來很好。

select rm_id as 'ID' 
     ,bk_branch as 'BRANCH' 
     ,br_name as 'BANK REP.' 
     ,bs_name as 'ESCORT' 
     ,dt_rep as 'DATE' 
     ,rep_time as 'TIME' 
     ,amt 
     ,inv_no 
     ,total_box 
     ,box_no 
     ,note_state 
     ,dm_state 
     ,1 
     ,2 
     ,10 
     ,20 
     ,50 
     ,100 
     ,500 
     ,1000 
     ,tp 
     ,tv 
     ,tp_ex1 
     ,tv_ex1 
     ,tp_m 
     ,tv_m   
from bk_det 
... 
+0

消息209,級別16,狀態1,行1 不明確的列名'rm_id'。 消息209,級別16,狀態1,行5 不明確的列名'dt_rep'。 消息209,級別16,狀態1,行6 不明確的列名'rep_time'。 –

+0

它再次顯示上述錯誤.. !! –

+0

@ user1904521 - 不同的錯誤。您正在選擇名稱出現在多個表格中的列。您需要使用您希望從 -

中選擇的表名來限定這些列。 '。 – Oded

0

只是將表別名列給其他明智的它會給歧義。

select a.rm_id as 'ID', 
     bk_branch as 'BRANCH', 
     br_name as 'BANK REP.', 
     bs_name as 'ESCORT', 
     dt_rep as 'DATE', 
     rep_time as 'TIME', 
     amt, 
     inv_no, 
     total_box, 
     box_no, 
     note_state, 
     dm_state, 
     1 , 
     2, 
     10, 
     20, 
     50, 
     100, 
     500, 
     1000, 
     tp, 
     tv, 
     tp_ex1, 
     tv_ex1, 
     tp_m, 
     tv_m,   
from bk_det a 
inner join bk_rep b 
    on a.rm_id = b.rm_id 
inner join bk_sec c 
    on b.rm_id = c.rm_id 
inner join mut_det d 
    on c.rm_id = d.rm_id 
inner join rm_det e 
    on d.rm_id = e.rm_id 
inner join soil_det f 
    on e.rm_id = f.rm_id;