Je veux retourner les trois premiers animaux pour chaque employé en tant que colonnes au lieu de lignes iEPivot sur SQL Server 2010
Owner_ID Pet
--------------------
1 Cat
1 Dog
1 Hamster
2 Cow
2 Sheep
3 Dog
convertir en
Owner_ID Pet1 Pet2 Pet3
-------------------------------------
1 Cat Dog Hamster
2 Cow Sheep null
3 Dog null null
Le nom des animaux proviennent d'une recherche table et il peut y avoir un certain nombre d'animaux, mais je veux seulement revenir en haut 3.
Voici ma question:
SELECT Owner,Pet1, Pet2,Pet3
FROM
(select distinct OwnerID as Owner,glcom.Value as Pets
from Owner ,OwnerPets ,Pet
where Pet.Type='Furry'
and OwnerPets.OwnerID = OwnerID.OwnerID
and OwnerPets.PetID = Pet.PetID) AS SourceTable
PIVOT
(
Max(Pets)
FOR Pets IN (Pet1, Pet2,Pet3)
) AS PivotTable;
Malheureusement, il retourne seulement null pour chaque ligne ... donc la sortie que je vois est
Owner_ID Pet1 Pet2 Pet3
-------------------------------------
1 null null null
2 null null null
3 null null null
Espérons que c'est un problème commun et que quelqu'un doit avoir résolu déjà.
Merci
WTF est SQL Server 2010? La dernière version est 2008 R2. –
NB: Ma réponse suppose que vous suivez Brent Ozar en appelant 2008 R2 SQL Server 2010! http://www.brentozar.com/archive/2009/02/sql-server-2010-features-leaked/ –
:) oui c'est le cas. – sfomate