Tohle by mělo stačit:
SELECT
Scenario_Name
, Version
, Measure
, Value
from
(
SELECT Scenario_Name, Measure, Version, SUM(Value) AS Value , 1 as ordering
FROM #TableName
GROUP BY Scenario_Name, Measure, version
UNION ALL
SELECT Scenario_Name, 'TotalPeople', Version, SUM(Value) , 2 as ordering
FROM #TableName
GROUP BY Scenario_Name, Version
) t
Order by Scenario_Name, ordering, Measure
EDIT:Chcete-li přidat svůj dotaz, zkuste něco takového (váš dotaz jde výše, kde je ...):
...
UNION ALL
SELECT
( SELECT attributedata
FROM [' [email protected]+ '].table1
WHERE AttributeName = ''Scenario Name''
) AS Scenario_Name
, (
SELECT attributedata
FROM [' [email protected]+ '].table1
where AttributeName = ''Version''
) AS Version
, CAST(COUNT(*) AS float)/MAX(repnum) AS value
, 'TotalPeople' AS Measure
, GETDATE() AS DateRun
, (SELECT ' + CAST(@testid as CHAR) +') AS TestNum
FROM [' [email protected]+ '].table2
EDIT2:Myslím, že řešení je v podstatě stejné, pokud se snažíte dosáhnout stejné věci:
select (cast(count(id) as float)) as Value, FinalDisposition as Measure
from TML_Casualties
where FinalDisposition = 'DOW' or FinalDisposition = 'KIA'
group by FinalDisposition
UNION ALL
select (cast(count(id) as float)) as Value, 'TotalDeaths' as Measure
from TML_Casualties
where FinalDisposition = 'DOW' or FinalDisposition = 'KIA'