我有一個表,我需要在子查詢中計算兩個不同的列。我有這樣的事情:從DB中獲取兩個子查詢的百分比
SELECT
COUNT(z.id_contract) AS countOfContracts,
(
SELECT COUNT(zml.id_contract) FROM [DW].[dbo].[DW_D_CONT] AS zml
WHERE zml.p_akt= 'A'
AND d_start_dw > '2013-01-01'
AND d_start_dw < '2013-01-31'
) AS januar,
(
SELECT COUNT(zml.id_contract) FROM [DW].[dbo].[DW_D_CONT] AS zml
WHERE zml.p_akt= 'A'
AND d_start_dw > '2013-02-01'
AND d_start_dw < '2013-02-28'
) AS februar
FROM ...
我需要做的是這樣
januar/februar * 100
然而alliases不子查詢工作。於是我想到了這樣的事情:
(
(SELECT COUNT(zml.id_contract) FROM [DW].[dbo].[DW_D_CONT] AS zml
WHERE zml.p_akt= 'A'
AND d_start_dw > '2013-01-01'
AND d_start_dw < '2013-01-31')
)
/
(
(SELECT COUNT(zml.id_contract) FROM [DW].[dbo].[DW_D_CONT] AS zml
WHERE zml.p_akt= 'A'
AND d_start_dw > '2013-02-01'
AND d_start_dw < '2013-02-28')
)
所以我試圖讓「januar」和「februar」像一個子任務計數(你可以看到有不同的日期),但我總是收到100%。我絕對相信,januar和februar的數量是不同的
somone能幫助我嗎?
我的問題是這兩個子查詢的劃分。我總是收到1(這意味着100%)。但一月份的數字與二月份不一樣。我不知道它是怎麼可能的: – MegoSoft
@MegoSoft ... SQL Server做整數除法,因此,你需要將值更改爲浮點/十進制表示,我只是將'1'更改爲'1.0'解決這個問題。 –