Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I would try running the subqueries first into a temp table to gather your counts, then pull your total counts. With the way you have the query setup its going to run each of those subqueries once for every line of PCapps, which is why it is taking so long.</p> <p>Try something like this:</p> <pre><code>declare @t table (Computer varchar(10), Sequence int, Site varchar(3), SoftwareName varchar(20), OS varchar(20) ) insert into @t values ('C1',1,'BKN','Adobe Acrobat','Win7') ,('C2',1,'BKN','Adobe Acrobat','Win7') ,('C3',1,'BKN','Adobe Acrobat','Win7') ,('C1',1,'BKN','AutoCAD LT ','Win7') ,('C3',1,'BKN','AutoCAD LT ','Win7') ,('B1',2,'CTW','Adobe Acrobat','Win7') ,('B2',2,'CTW','Adobe Acrobat','Win7') ,('B3',3,'CTW','Adobe LT','Win7') ,('B4',3,'CTW','Adobe Acrobat','Win7') ,('A1',2,'CTW','Adobe Acrobat','Win7') ,('A2',2,'CTW','Adobe LT','Win7') ,('A3',2,'CTW','Adobe Acrobat','Win7') ,('X4',3,'CTW','Adobe Acrobat','WinXP') ,('X1',2,'CTW','Adobe Acrobat','WinXP') ,('X2',2,'CTW','Adobe LT','WinXP') ,('X3',2,'CTW','Adobe Acrobat','WinXP') ,('A4',2,'CTW','Adobe Acrobat','Win7'); SELECT Site, OS, SoftwareName, Sequence, COUNT(SoftwareName) as 'Count' into #SiteSpecific FROM @t group by Site, OS, SoftwareName, Sequence; WITH PCapps AS ( SELECT DISTINCT Computer, Sequence, Site, SoftwareName, OS FROM @t ) SELECT DISTINCT PC.SoftwareName, PC.Sequence, PC.Site, PerSeq.[Count] as 'Win7Installs/seq', PerSite.[Count] as TotWin7apps, total.[Count] as TotalInstalls FROM PCapps pc inner join (select SoftwareName, Sequence, OS, sum([Count]) [Count] from #SiteSpecific group by SoftwareName, Sequence, OS) PerSeq on PerSeq.SoftwareName = pc.Softwarename AND PerSeq.Sequence = pc.Sequence AND PerSeq.OS = pc.OS inner join (select SoftwareName, Site, OS, sum([Count]) [Count] from #SiteSpecific group by SoftwareName, Site, OS) PerSite on PerSite.SoftwareName = pc.Softwarename AND PerSite.Site = pc.Site AND PerSite.OS = pc.OS inner join (select SoftwareName, sum([Count]) [Count] from #SiteSpecific group by SoftwareName) Total on Total.SoftwareName = pc.Softwarename where Pc.OS='Win7' order by SoftwareName, Sequence, Site </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload