2013-09-30 56 views
0

我試圖從2個不同的查詢中劃分數字結果。你可以將2個完全不同的查詢結果分成1個結果

最終結果應當查詢1 DIVIDED BY查詢2

查詢1 =

SELECT COUNT(DISTINCT(table1.ID)) AS count_1 
FROM table1 
    INNER JOIN op 
    INNER JOIN Org 
    ON table1.EID = op.id 
     AND Op.OrgID = Org.ID 
WHERE table1.TitleID = 123 
    AND op.BrandID = 1 
    AND op.Start <= NOW() AND op.End >= NOW(); 

查詢2 =

SELECT COUNT(DISTINCT user.id) AS count_2 
FROM table1 INNER JOIN user INNER JOIN ur 
    ON table1.EID = user.id AND ur.userID = user.id 
WHERE 
    user.BrandID = 1 
    AND table1.TitleID = 123 
    AND ur.role = 0 
    AND user.Inactive = 0; 

回答

3

當然!你可以使用子選擇來實現這一點,儘管它會非常冗長!

SELECT 
(
    SELECT COUNT(DISTINCT(table1.ID)) AS count_1 
    FROM table1 
     INNER JOIN op 
     INNER JOIN Org 
     ON table1.EID = op.id 
      AND Op.OrgID = Org.ID 
    WHERE table1.TitleID = 123 
     AND op.BrandID = 1 
     AND op.Start <= NOW() AND op.End >= NOW() 
)/(
    SELECT COUNT(DISTINCT user.id) AS count_2 
    FROM table1 INNER JOIN user INNER JOIN ur 
     ON table1.EID = user.id AND ur.userID = user.id 
    WHERE 
     user.BrandID = 1 
     AND table1.TitleID = 123 
     AND ur.role = 0 
     AND user.Inactive = 0 
); 

格式但它感覺最不醜陋的你。

1

使用子查詢是這樣的:

SELECT Q1.count_1/Q2.Count_2 
FROM 
(... Query1 ...) AS Q1 
JOIN 
(... Query2 ...) AS Q2 
ON 1=1 

替換Query1和Query2作爲你的代碼。

相關問題