2012-08-14 61 views
0

我在經典ASP中使用MS SQL語句時遇到了一些問題。 當我在Microsoft SQL SMS中使用語句時 - 我得到正確答案(4),但在ASP我只得到結果2 ..MS SQL在asp中執行時返回錯誤結果

我想要的結果是有多少不同的藝術家有一個或多個發佈的項目。

我使用的語句 -

SELECT Count(*) AS CountArtists 
FROM Tekster 
WHERE Published='True' 
GROUP BY Artist 

數據 - 表(文本)

Artist - Published 
Person1  yes 
Person1  no 
Person1  yes 
Person2  yes 
Person3  yes 
Person3  no 
Person3  yes 
Person4  no 
Person4  no 
Person4  no 
Person5  no 
Person5  yes 
Person6  no 
+0

我們展示你的ASP代碼 – Curt 2012-08-14 16:20:46

回答

0

確保連接字符串是兩個查詢相同。你可能會碰到不同於你想象的數據庫。

此外,請注意您的查詢正在檢查True,但您的數據說yes/no。這是什麼?

0

當數據包含「是」和「否」時,爲什麼要說「published ='true'」?

嘗試運行publish ='yes'的查詢。另外,如果你想要值4,那麼你應該做「計數(獨特的藝術家)」,而不是計數(*)。

0

如果您修復where子句,您的原始查詢將爲您提供每個藝術家的表格中publishedyes|true的所有行的計數。據推測,你會得到零值。

爲了得到你想要的結果,並回答這個問題,「有多少不同的藝術家有一個或多個已公佈的項目嗎?」,你需要做類似如下:

select count(*) 
from (select artist 
     from Tekster 
     where published = 'yes' 
     group by artist 
     having count(*) > 1 
    ) published_artist pa 

虛擬表(子查詢)爲您提供了一組已發佈的藝術家。外部查詢爲您提供已發佈藝術家的人數。

0

SELECT COUNT(DISTINCT藝術家)AS CountArtists FROM Tekster WHERE發佈時間= '真'

+0

非常感謝 - 這只是我正在尋找的正確聲明:-) – 2012-08-14 18:31:39

0

如果出版領域的數據類型是位再使用發佈時間= 1