2016-11-07 2 views
0

J'ai reçu ce type de données sur mon db.Données de tableau croisé dans les résultats SQL

enter image description here

-je présenter un résultat comme celui-ci:

enter image description here

Utilisation des rapports de cristal ce qui est faisable. J'espère que quelqu'un peut m'aider à écrire une requête pour cela.

+0

Y aura-t-il seulement 3 jours de données ou le nombre de jours peut-il être variable? –

+0

Il s'agit d'une variable n'a montré que 3 jours en tant qu'échantillon. –

+0

Vous cherchez quelque chose appelé une requête pivot, mais il faudra probablement être dynamique dans votre cas. –

Répondre

0

Ce n'est pas quelque chose que vous feriez normalement en utilisant SQL, beaucoup mieux à implémenter dans l'application. Mais si vous voulez le faire, alors vous pourriez faire quelque chose comme ceci:

SELECT Item, 
    [01/01/2016 - Unique Emp ID] = Count(Distinct iif([Date] = Convert(date, '01-01-2016', [Emp ID], NULL)), 
    [01/01/2016 - Sum Qty] = Sum(iif([Date] = Convert(date, '01-01'2016', [Qty Bought], NULL)), 
    [02/01/2016 - Unique Emp ID] = Count(Distinct iif([Date] = Convert(date, '02-01-2016', [Emp ID], NULL)), 
    ... 
    FROM MyTable; 

L'inconvénient est que les têtes de colonne sont fixes. C'est pourquoi vous devriez le faire dans l'application.