我有以下4個表格:MainTable,Warehouse,Customer和Company。內部加入時的情況
這些表的模式:
create table MainTable(ID int, Warehouse_id int, Customer_ID int)
create table Warehouse (Warehouse_id int, company_id int)
create table Customer (Customer_ID int, Company_ID int)
create table company (Company_id int, Country_ID int, Zone_ID int)
的OBJECTIF是讓COUNTRY_ID和Zone_ID爲(的MainTable)相應的ID。
我們有2個不同的情況:if MainTable.Warehouse_ID
不爲空,我們應該做倉庫表(現場warehouse_id)內部聯接,然後在公司表的連接(現場COMPANY_ID), else
(如果MainTable.Warehouse_ID爲null )我們應該在客戶表(在Customer_ID字段上)和公司表(在Company_ID字段上)上進行內部聯接。
以下查詢生成單詞「案例」附近的一個錯誤:
select CO.Country_ID, CO.Zone_ID
from MainTable MT
inner join (case
when MT.Warehouse_ID is not null
then
Warehouse W on MT.Warehouse_ID=W.Warehouse_ID
inner join Company CO on W.Company_ID=CO.Company_ID
else
Customer Cu on MT.Customer_ID=Cu.Customer_ID
inner join Company C on Cu.Company_ID=CO.Company_ID
end)
助我,我錯過了一個小的語法錯誤,這樣做對嗎?如果沒有..還有其他方法可以做到嗎?
謝謝
一個辦法做到這一點,是動態查詢!但你需要使用存儲過程 – 2014-10-09 11:08:07
動態SQL不會幫助,因爲條件是特定於每行 – jazzytomato 2014-10-09 11:11:58