2015-12-01 93 views
3

讓我們假設我們有一個子查詢,:選擇通過計算FIEL

SELECT  
    K.NAME,  
    ( SELECT 
     COUNT(*)  
     FROM   
     "001INSIDE_PROCEDURE"  
     ('PARAM1','PARAM2', K.ID, 1) S ) AS MY_NUMBER,    
FROM 
"001CLIENTS" K WHERE   
(K.ACTIVE = 1) ORDER BY         
K.NAME 

它工作正常,我已經得到了列MY_NUMBER。 我想有posibility WHERE(K.ACTIVE = 1)AND MY_NUMBER = 10 另一句話:是否有機會通過計算查詢中的列進行選擇?

Robert

回答

0

您可以簡單地添加另一個where子句,如下所示。

 SELECT  
     K.NAME,  
     ( SELECT 
      COUNT(*)  
      FROM   
      "001INSIDE_PROCEDURE"  
      ('PARAM1','PARAM2', K.ID, 1) S ) AS MY_NUMBER    
    FROM 
    "001CLIENTS" K 
    WHERE   
    (K.ACTIVE = 1) 
    and ( SELECT 
      COUNT(*)  
      FROM   
      "001INSIDE_PROCEDURE"  
      ('PARAM1','PARAM2', K.ID, 1) S) = 10 
    ORDER BY         
    K.NAME 
+0

對不起,但火鳥報告「列MY_NUMBER未知」 – Robert

+0

你可以嘗試使用新的編輯?我錯過了列別名在where子句中不可訪問的部分。 –

+0

是的,它現在可以工作,thx解決方案。順便說一句 - 正如我所看到的,這是無效的。 FB計數兩次相同。在我的真實數據庫中,「沒有」您的解決方案的查詢花費了大約0.26s,而「補丁」花費了1.30s。但無論如何這是出路 - thx再次 – Robert