2017-02-20 137 views
-2

這是我第一次查詢:如何在其他查詢中使用查詢的返回值?

Select a1,count(*) as b1 from btable 

這是我的第二個查詢:

Select a1,a2,a3,.., from atable inner join btable b on a1=b.a1 

我的意思是,在第一個查詢,如果B1得到了A1的價值,我想B1對應相同的a1在第二個查詢中獲取該值。如果沒有相應的值B1 = 0

例子;第一查詢結果:如果A1 = 1和B 1 = 2,A 1 = 100和B1 = 8 .... 第二查詢結果:A1 = 1 b1 = 2,a1 = 30 b1 = 0,a1 = 100 b1 = 8,a1 = 22 b1 = 0

+0

目前尚不清楚你的問題是什麼。 – KindaTechy

回答

0

不知道我是否正確地得到了您的問題,但第一個查詢似乎使用聚合函數)應該伴隨着group by條款。如果你必須使用一個group by條款,那麼B1值是1的所有行每個A1

例子:

Select a1,count(*) as b1 
from btable 
group by a1 

對於第2個查詢,你真的沒有使用加入;可以實現,使用簡單where條件

舉例:

所有的
Select a.a1,a.a2,a.a3,.., 
from atable a,btable b 
where a.a1=b.a1 
0

首先,讓我跟Manash Hazaika同意,並說,你的第一個查詢可能是不正確的。忽略,如果你想擁有第二個查詢訪問的第一個查詢的結果,您可能會在CTE如下考慮使用:

;with subQuery as 
(
    Select a1,count(*) as b1 from btable 
) 
Select a1,a2,a3,.., from atable inner join subQuery b on a1=b.a1 
相關問題