2012-03-29 7 views
1

ProductNumberDuplicates_backupsテーブルがあり、ProductIDとProductNumberの2つの列があります。重複しているProductNumbersがいくつかあります。どのようにして製品の別個の数をカウントし、「(製品)バックアップのように」結果をプリントアウトすることができますか? ?これはストアドプロシージャ内にあるため、@numrecord変数を別の行数として使用する必要があります。私はこのように私のコードを置く:T-SQL重複行の数を数えて結果を出力する方法は?

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.' 

選択として=記号はそれに従うことはできません後、明らかに誤りでした。私は同様のケースを検索しましたが、それは単なるselectステートメントです。助けてください。どうもありがとう!

答えて

1

select @numrecord= count(distinct ProductNumber) 
from ProductNumberDuplicates_backups 
Print cast(@numrecord as varchar)+' product(s) were backed up.' 
+0

感謝を!expected.''何よりも4以上である、28個の製品を示しています –

1
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 
+0

感謝をしてみますが、印刷ラインは、私が実際に働いていたと簡単な –

関連する問題