J'ai une situation où j'ai besoin d'obtenir les enregistrements de plusieurs tables qui contient le nom de colonne 'YrId'
et je veux récupérer seulement des valeurs distinctes de cette table aussi bien que je veux obtenir le compte des valeurs groupées par 'YrId'
. Pour obtenir la colonne qui contient plus de 0 valeurs que j'ai la requête suivante qui me renvoie le nom de la table ayant désiré colonneComment obtenir des valeurs distinctes de plusieurs tables avec le nombre dans SQL Server?
SELECT
t.name AS [Table Name],
'Total Record Count'=max(i.rows)
FROM
sys.tables AS t
INNER JOIN
sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
INNER JOIN
sysindexes i ON t.object_id=i.id
WHERE
c.name LIKE '%yrid%'
GROUP BY
t.name
HAVING
MAX(i.rows) > 0
ORDER BY
[total record count] DESC
De cette requête, je reçois le nom de table qui a la colonne 'yrid'
maintenant pour obtenir des valeurs distinctes je lance le requête suivante sur le nom de la table qui est retournée par une requête donnée ci-dessus.
select distinct yrid, 'Table1'
from Table1
Mais j'ai un problème avec la requête ci-dessus qui génère une sortie dans plusieurs ensembles de lignes que je ne veux pas. Je veux générer une sortie dans la même rowset qui devrait être comme donné ci-dessous:
Table Name YrId1Count YrId2Count
----------------------------------
Table1 250 350
Table2 320 410
Pour autant que je sais que cela peut être réalisé par PIVOT mais je n'a pas réussi à le faire.
Je ne pense pas que votre question soit clairement compréhensible. Pouvez-vous reformuler la question et ajouter quelques exemples de données sources afin que nous sachions ce que vous essayez de réaliser? Merci. – ViKiNG
Il existe de nombreux exemples de pivots en ligne. Avez-vous essayé? –