我需要連接這兩個表。我需要選擇出現在那裏:從不同條件下的同一列中選擇
ex_head of_family_active = 1 AND tax_year = 2017
也:
ex_head of_family_active = 0 AND tax_year = 2016
我第一次嘗試連接這兩個表我在FROM子句中具有相同的暴露名稱得到了倉庫中的數據 dbo.tb_master_ascend AND warehouse_data.dbo.tb_master_ascend
。正如現在下面顯示的查詢,我在「where」處得到語法錯誤。我究竟做錯了什麼?謝謝
use [warehouse_data]
select
parcel_number as Account,
pact_code as type,
owner_name as Owner,
case
when ex_head_of_family_active >= 1
then 'X'
else ''
end 'Head_Of_Fam'
from
warehouse_data.dbo.tb_master_ascend
inner join
warehouse_data.dbo.tb_master_ascend on parcel_number = parcel_number
where
warehouse_data.dbo.tb_master_ascend.tax_year = '2016'
and ex_head_of_family_active = 0
where
warehouse_data.dbo.tb_master_ascend.t2.tax_year = '2017'
and ex_head_of_family_active >= 1
and (eff_from_date <= getdate())
and (eff_to_date is null or eff_to_date >= getdate())
@marc_s我改變了,語句和更新了我的代碼,但是過濾器現在沒有工作:
use [warehouse_data]
select
wh2.parcel_number as Account
,wh2.pact_code as Class_Type
,wh2.owner_name as Owner_Name
,case when wh2.ex_head_of_family_active >= 1 then 'X'
else ''
end 'Head_Of_Fam_2017'
from warehouse_data.dbo.tb_master_ascend as WH2
left join warehouse_data.dbo.tb_master_ascend as WH1 on ((WH2.parcel_number = wh1.parcel_number)
and (WH1.tax_year = '2016')
and (WH1.ex_head_of_family_active is null))
where WH2.tax_year = '2017'
and wh2.ex_head_of_family_active >= 1
and (wh2.eff_from_date <= getdate())
and (wh2.eff_to_date is null or wh2.eff_to_date >= getdate())
的語法錯誤是你**不能** **有** 2'WHERE'在T-SQL語句 –
我使用MSSQL雖然條款。我應該可以在正確的地方使用兩個? – Tommy
***沒有*** - 你***不能***在T-SQL語句中有兩個'WHERE'子句。你*可以*然而結合條件使用'AND'和'OR' - 但是可以**只有一個** WHERE條款 –