SQL: нужно получить количество записей - PullRequest
1 голос
/ 16 июля 2010

Это должно быть просто, я просто не получаю желаемого результата, я пробую это несколькими способами и все еще не получаю нигде. Мне нужно, чтобы получить полный список записей подзапроса. Я знаю, что это совершенно неправильно, но когда когда я помещаю счет в подзапрос, он все еще дает мне 1 вот мой код:

SELECT COUNT(*) [COUNT] 
    (
        SELECT WP_BlogEntries.BlogEntryID, sys_Objects_Tags.TagID
        FROM WP_BlogEntries INNER JOIN sys_Objects_Tags ON
        WP_BlogEntries.BlogEntryID = sys_Objects_Tags.SystemObjectRecordID
        WHERE WP_BlogEntries.ReleaseDate < GETDATE()
        AND WP_BlogEntries.ExpireDate > GETDATE()
        AND WP_BlogEntries.Approved = 1
        AND WP_BlogEntries.Listed = 1
        AND WP_BlogEntries.BlogID = @BlogID
        AND TagID = @TagID
        GROUP BY WP_BlogEntries.BlogID, BlogEntryID, sys_Objects_Tags.TagID
    )

Ответы [ 3 ]

2 голосов
/ 16 июля 2010
SELECT COUNT(*) As [COUNT] 
From (
    SELECT WP_BlogEntries.BlogEntryID, sys_Objects_Tags.TagID
    FROM WP_BlogEntries 
        INNER JOIN sys_Objects_Tags 
            ON WP_BlogEntries.BlogEntryID = sys_Objects_Tags.SystemObjectRecordID
    WHERE WP_BlogEntries.ReleaseDate < GETDATE()
        AND WP_BlogEntries.ExpireDate > GETDATE()
        AND WP_BlogEntries.Approved = 1
        AND WP_BlogEntries.Listed = 1
        AND WP_BlogEntries.BlogID = @BlogID
        AND TagID = @TagID
    GROUP BY WP_BlogEntries.BlogID, BlogEntryID, sys_Objects_Tags.TagID
    ) As Z

Вам просто нужно создать псевдоним подзапроса и поместить его в предложение FROM, превратив его в производную таблицу. Хотя, если вам нужен только счетчик, вам ничего не нужно в предложении Select (т. Е. Вы можете использовать Select 1 в предложении Select подзапроса, и он все равно будет работать.

0 голосов
/ 16 июля 2010
select count(*)as COUNT from (select * from tableName where condition='this' group by ID)as s
0 голосов
/ 16 июля 2010

Сколько строк это возвращает с вашими обычными параметрами в @BlogID, @TagID?:

SELECT WP_BlogEntries.BlogEntryID, sys_Objects_Tags.TagID
        FROM WP_BlogEntries INNER JOIN sys_Objects_Tags ON
        WP_BlogEntries.BlogEntryID = sys_Objects_Tags.SystemObjectRecordID
        WHERE WP_BlogEntries.ReleaseDate < GETDATE()
        AND WP_BlogEntries.ExpireDate > GETDATE()
        AND WP_BlogEntries.Approved = 1
        AND WP_BlogEntries.Listed = 1
        AND WP_BlogEntries.BlogID = @BlogID
        AND TagID = @TagID
        GROUP BY WP_BlogEntries.BlogID, BlogEntryID, sys_Objects_Tags.TagID

И, как уже отмечали другие, вашему внутреннему запросу нужно имя:

SELECT COUNT(*) FROM (
SELECT WP_BlogEntries.BlogEntryID, sys_Objects_Tags.TagID
        FROM WP_BlogEntries INNER JOIN sys_Objects_Tags ON
        WP_BlogEntries.BlogEntryID = sys_Objects_Tags.SystemObjectRecordID
        WHERE WP_BlogEntries.ReleaseDate < GETDATE()
        AND WP_BlogEntries.ExpireDate > GETDATE()
        AND WP_BlogEntries.Approved = 1
        AND WP_BlogEntries.Listed = 1
        AND WP_BlogEntries.BlogID = @BlogID
        AND TagID = @TagID
        GROUP BY WP_BlogEntries.BlogID, BlogEntryID, sys_Objects_Tags.TagID
) PLEASE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...