Les colonnes sont triées exactement comme vous le spécifiez dans la clause Select de votre SQL. Les lignes sont classées comme vous le spécifiez dans la clause Order By.
Donc, pour changer ceux-ci, il suffit de changer la façon dont vous écrivez ces deux clauses:
select c.searchname 'Client Name',
j.Name 'Engagement Name',
j.JobID 'Eng #',
sum(units) hours,
from tblWip w
join tblJob j on w.jobid=j.jobid
join tblclient c on j.clientid=c.clientid
join tblChargeAccs ca on w.chargeacid=ca.ChargeAcID
where j.PartnerID='19'
group by c.searchname, j.name, w.date,
j.jobid, w.units, w.amount, ca.description
order by c.searchname, w.date asc
Obtenir les colonnes pour refléter la date et ayant une colonne distincte pour chaque date dans les données est plus difficile. Ceci est appelé Pivot ing les données. Google ceci car c'est un sujet qui lui est propre. La plupart des produits de base de données ont une fonction intégrée (dans SQL Server il est appelé Pivot) qui fera cela pour vous, mais vous devez lire les documents (un lien fourni) pour savoir comment l'utiliser correctement.
Si vous savez à l'avance pour quelles dates vous avez besoin de colonnes, vous pouvez l'écrire sans Pivoter dynamique. En utilisant vos données d'exemple:
select c.searchname 'Client Name',
j.Name 'Engagement Name',
j.JobID 'Eng #',
sum(case when w.Date = '25Jun2017' then units end) '25Jun2017hours',
sum(case when w.Date = '26Jun2017' then units end) '26Jun2017hours',
sum(case when w.Date = '27Jun2017' then units end) '27Jun2017hours'
from tblWip w
join tblJob j on w.jobid=j.jobid
join tblclient c on j.clientid=c.clientid
join tblChargeAccs ca on w.chargeacid=ca.ChargeAcID
where j.PartnerID='19'
group by c.searchname, j.name, w.date,
j.jobid, w.units, w.amount, ca.description
order by c.searchname, w.date asc
Tout d'abord, vous ne devez pas générer un rapport uniquement en SQL. Utilisez un outil frontal pour cela. Deuxièmement, si vous voulez le formater comme le rapport, vous devez pivoter sur la colonne date, et faire une somme sur Heures. Nous devons connaître votre système de base de données, et vous devez être conscient que la requête doit être faite dynamiquement, car vous ne savez pas quelles dates seront nécessaires. –
Parfait, c'est ce que je voulais savoir. Je vous remercie! – MarkFro