SubscribeSELECT T1.SiteID, SUM(T1.Stat1) AS Stat1, SUM(T1.Stat2) AS Stat2, T2.Stat3
FROM Table1 T1 JOIN
(SELECT SUM(Stat3) AS Stat3
FROM Table2
WHERE Date BETWEEN @From AND @To) T2
ON 1=1
WHERE T1.Date BETWEEN @From AND @To
GROUP BY T1.SiteID, T2.Stat3
ORDER BY T1.SiteIDSUM(Stat3), you display FIRST(Stat3). It's ugly, but it ought to work.SiteID Stat1 Stat2 Table2.Date Table3.DateAnd so forth, which is not what you're looking for if you want to summarize the data. In the case that each table has a unique SiteID-Date combination (in which case I would argue that you might want to combine Table2 and Table3), you can:
1 5 5 6/1/2008 6/1/2008
1 5 22 6/1/2008 6/2/2008
1 5 7 6/1/2008 6/3/2008
SELECT T1.SiteName, SUM(T2.Stat1) AS Stat1, SUM(T3.Stat2) AS Stat2
FROM Table1 T1 JOIN Table2 T2
ON T1.SiteID = T2.SiteID
JOIN Table3 T3
ON T1.SiteID = T3.SiteID
AND T2.Date = T3.Date
WHERE T2.Date BETWEEN @From AND @To
GROUP BY T1.SiteName
SELECT T1.SiteName, T2.Stat1, T3.Stat2
FROM Table1 T1 JOIN
(SELECT SiteID, SUM(Stat1) AS Stat1
FROM Table2
WHERE Date BETWEEN @From AND @To
GROUP BY SiteID) T2
ON T1.SiteID = T2.SiteID
JOIN
(SELECT SiteID, SUM(Stat2) AS Stat2
FROM Table3
WHERE Date BETWEEN @From AND @To
GROUP BY SiteID) T3
ON T1.SiteID = T3.SiteID
You are not logged in, either login or create an account to post comments
SELECT SUM(Stat1), SUM(Stat2), SUM(Stat3) FROM
(SELECT Table1.SiteID AS SiteID, SUM(Table1.Stat1) AS Stat1, SUM(Table1.Stat2) AS Stat2, SUM(Table1.Stat3) AS Stat3
FROM Table1
WHERE (Table1.Date >= @From) AND (Table1.Date <> GROUP BY Table1.SiteID
ORDER BY Table1.SiteID) AS Table1
UNION
(SELECT SUM(Table2.Stat3) AS Stat3
FROM Table2
WHERE (Table2.Date >= @From) AND (Table2.Date <= @TO)) AS Table2>
posted by 0xFCAF at 5:30 AM on September 10, 2008