1

クロス結合を使用するクエリの 1 つの結果の数をカウントする際に問題があります。

データ収集クエリは

SELECT CF.*, C.Type AS Ctype, C.Resp AS Resp 
FROM Campaigns C, CampaignEntities CF 
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC 

基準に適合する行を適切に返します。

ただし、適合する行数を取得するために変更すると、次のようになります。

SELECT COUNT(*) as RowNr 
FROM Campaigns C, CampaignEntities CF 
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC

数百万の数値を取得します (基本的には、WHERE 条件が適用されていない結合の結果です)。

なぜこのように動作するのか、またはどうすれば適切な数を取得できるのか考えていますか?

4

1 に答える 1

0

試す

SELECT COUNT(C.clientId) as RowNr

それ以外の

SELECT COUNT(*) as RowNr

偶数行count(*)をカウントするためnull

于 2012-10-17T09:40:58.917 に答える