2011-06-28 50 views

回答

0

之前選擇,選擇的別名不where子句知。您只能按子句順序使用別名。

,你必須這樣寫:

SELECT * FROM 
(
Select TD.ProductAccumRule_Id,TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code,Ordinal = row_number() over(partition by TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code order by TD.PRODUCT_ID,TD.VARIABLE_ID,TD.Accum_code) From testdata TD 
Join (
select PRODUCT_ID,VARIABLE_ID,Accum_code from testdata where 
isActive = 1 
GROUP BY PRODUCT_ID,VARIABLE_ID,Accum_code 
having count(*) > 1 
) TEMP on TD.Product_Id = temp.Product_Id and TD.Variable_Id = TEMP.Variable_Id and TD.Accum_code = TEMP.Accum_code 
where TD.isActive = 1 
) myInnerQuery 
where Ordinal <> 1 
2

總會有一個row_number(),它是1,對嗎?

我認爲你需要嵌套此查詢,如:只要執行其中

select * from (YOUR_BIG_QUERY) where Ordinal <> 1 
+0

感謝佛朗哥,我這樣做,我不能得到那個。我得到這個錯誤。 Msg 156,Level 15,State 1,Line 10 關鍵字'where'附近的語法錯誤。 – Sandy

相關問題