T-SQL, как посчитать количество повторяющихся строк, а затем распечатать результат? - PullRequest
1 голос
/ 29 марта 2012

У меня есть таблица ProductNumberDuplicates_backups, которая имеет два столбца с именами ProductID и ProductNumber. Есть несколько дубликатов ProductNumbers. Как я могу подсчитать различное количество продуктов, а затем распечатать результат типа «() продукты были резервными». ? Поскольку это внутри хранимой процедуры, я должен использовать переменную @numrecord в качестве отдельного числа строк. Я поставил свои коды так:

set @numrecord= select distinct ProductNumber
from ProductNumberDuplicates_backups where COUNT(*) > 1
group by ProductID
having Count(ProductNumber)>1
Print cast(@numrecord as varchar)+' product(s) were backed up.'

очевидно, что ошибка была после знака =, поскольку выбор не может следовать за ним. Я ищу похожие случаи, но это просто избранные утверждения. Пожалуйста помоги. Большое спасибо!

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Попробуйте

select @numrecord= count(distinct ProductNumber)
from ProductNumberDuplicates_backups 
Print cast(@numrecord as varchar)+' product(s) were backed up.'
1 голос
/ 29 марта 2012
begin tran
create table ProductNumberDuplicates_backups (
    ProductNumber int
)

insert ProductNumberDuplicates_backups(ProductNumber)
    select 1 
    union all
    select 2
    union all
    select 1
    union all
    select 3
    union all 
    select 2

select * from ProductNumberDuplicates_backups

declare @numRecord int

select @numRecord = count(ProductNumber) from 
    (select ProductNumber, ROW_NUMBER() 
        over (partition by ProductNumber order by ProductNumber) RowNumber
from ProductNumberDuplicates_backups) p
where p.RowNumber > 1

print cast(@numRecord as varchar) + ' product(s) were backed up.'
rollback
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...