COUNT(DISTINCT) dans plusieurs colonnes dans SQL Server 2008

Dans Oracle, il est possible d'obtenir un nombre de valeurs distinctes dans plusieurs colonnes à l'aide de la || opérateur (selon ce post sur le forum, de toute façon):

SELECT COUNT(DISTINCT ColumnA || ColumnB) FROM MyTable

Est-il un moyen de le faire dans SQL Server 2008? Je suis en train de faire une seule requête pour renvoyer certaines statistiques de groupe, mais je n'arrive pas à le faire.

Par exemple, voici un tableau de valeurs, je suis en train de requête:

AssetId MyId    TheirId   InStock
328     10      10        1
328     20      20        0
328     30      30        0
328     40      10        0
328     10      10        0
328     10      10        0
328     10      10        0
328     10      10        0

Pour AssetId #328, je veux calculer le nombre total d'Identifiants uniques dans le MyId et TheirId colonnes (4 = 10, 20, 30, 40), ainsi que le nombre total de non-zéro lignes de la InStock la colonne (1):

AssetId     TotalIds    AvailableIds
328         4           1

Est-il un moyen de travailler de cette magie en quelque sorte?

Cette question peut aider: comptage distinct sur plusieurs colonnes

OriginalL'auteur Mass Dot Net | 2012-08-12