ready4data
Programmer
Mainly an MS Access user I need to start doing things in SQL Server.
After much tweaking I came up with this sql. It works but I want to see if there is a better way to write this.
SELECT
dbo.Training2_V.LBU, dbo.Training2_V.District,
Count(dbo.Training2_V.SRNumber) AS Calls,
Sum(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS Trained,
Convert(FLOAT(53),Round(Cast(SUM(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS DECIMAL(10, 4)) / Count(dbo.Training2_V.SRNumber), 3)) AS PCT,
Convert(FLOAT(53),Round(Cast(SUM(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS DECIMAL(10, 4)) * 100 / Count(dbo.Training2_V.SRNumber), 0)) AS Graph,
dbo.Training2_V.Quarter
FROM
dbo.Training2_V
GROUP BY
dbo.Training2_V.LBU,
dbo.Training2_V.District,
dbo.Training2_V.Quarter
Thanks,
Scott
After much tweaking I came up with this sql. It works but I want to see if there is a better way to write this.
SELECT
dbo.Training2_V.LBU, dbo.Training2_V.District,
Count(dbo.Training2_V.SRNumber) AS Calls,
Sum(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS Trained,
Convert(FLOAT(53),Round(Cast(SUM(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS DECIMAL(10, 4)) / Count(dbo.Training2_V.SRNumber), 3)) AS PCT,
Convert(FLOAT(53),Round(Cast(SUM(CASE WHEN dbo.Training2_V.Trained = 'Yes' THEN 1 ELSE 0 END) AS DECIMAL(10, 4)) * 100 / Count(dbo.Training2_V.SRNumber), 0)) AS Graph,
dbo.Training2_V.Quarter
FROM
dbo.Training2_V
GROUP BY
dbo.Training2_V.LBU,
dbo.Training2_V.District,
dbo.Training2_V.Quarter
Thanks,
Scott