2017-07-06 64 views
0

Database Table 計數布爾值基於特定條件

親愛的,附件是在SQL Server 2016數據庫表。我想根據條件AssetTypeID獲取列IsAssetIssued的值來計算true和flase值。我正在嘗試

SELECT COUNT(IsAssetIssued) AS AvlAssets 
FROM AssetStatus 
WHERE (IsAssetIssued = True) 
    AND (AssetTypeID = 1) 

但是,這並不能爲列中的錯誤值提供確切的結果。請提出更好的解決方案。

謝謝,

+0

您的預期結果是什麼? Where子句中的'True'應該用*單引號括起來* –

+0

您明確地過濾掉了'WHERE'子句中的'False'值。所以你永遠不會得到有關這些行的結果。 – strickt01

回答

0

試試這個;

SELECT COUNT(IsAssetIssued) AS AvlAssets ,IsAssetIssued 
FROM AssetStatus 
WHERE (AssetTypeID = 1) 
group by IsAssetIssued 
+0

親愛的先生..這個陳述不計數值,即真或假,或1或0基於AssetTypeID的標準。我想要做的是計算IsAssetIssued列值,即true或false,或者1或0作爲where條件。 – Ghaffar

0

試試這個

SELECT AssetTypeID,IsAssetIssued FROM 
(
SELECT AssetTypeID,IsAssetIssued, 
COUNT(IsAssetIssued) OVER(Partition by AssetTypeID Order by AssetTypeID)AS AvlAssets , 
ROW_NUMBER()OVER(Partition by AssetTypeID Order by AssetTypeID) AS Seq 
FROM AssetStatus 
)Dt 
WHERE Dt.Seq=1 
+0

親愛的先生,非常感謝你爲幫助我所做的努力。非常誠實,我無法理解你的查詢,因爲我是一個新手,它看起來很先進。 SELECT COUNT(IsAssetIssued)AS AvlAssets FROM AssetStatus WHERE(AssetTypeID = 1)。我想修改它,以便通過基於我從asp.net頁面提供的動態AssetTypeID值計算來自IsAssetIssued列的true或false值來獲得可用餘額 – Ghaffar

0

感謝您的幫助你的人幫我記錄。查詢只有輕微的變化,即我將IsAssetIssued值固定爲false,並將AssetTypeID設置爲動態。選擇COUNT(IsAssetIssued)AS AvlAssets FROM AssetStatus WHERE(IsAssetIssued ='False')AND(AssetTypeID = 1);

它工作完美。