2012-03-29 6 views
1

Ich habe eine Tabelle ProductNumberDuplicates_backups, die zwei Spalten namens ProductID und ProductNumber hat. Es gibt einige doppelte ProductNumbers. Wie kann ich die eindeutige Anzahl der Produkte zählen, dann das Ergebnis wie "() Produkte war Backup" ausdrucken. ? Da dies in einer gespeicherten Prozedur ist, muss ich eine Variable @numrecord als die eindeutige Anzahl von Zeilen verwenden. Ich gebe meine Codes so ein:T-SQL Wie man die Anzahl der doppelten Zeilen zählt und dann das Ergebnis ausgibt?

offensichtlich war der Fehler nach dem = Zeichen, da die Auswahl nicht folgen kann. Ich habe nach ähnlichen Fällen gesucht, aber sie sind nur Select-Anweisungen. Bitte helfen Sie. Danke vielmals!

Antwort

1

Versuchen

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

Dank eigentlich expected.''! Das funktionierte und so einfach –

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

Danke, aber die Druckleitung 28 Produkte zeigt, die 4 ist mehr als das, was ich –

Verwandte Themen