sql >> Databáze >  >> RDS >> Sqlserver

Pokus o získání součtu odlišných hodnot pro odlišné soubory pro různé verze softwaru

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'



  1. Tlačítko Přidat PHP pro zobrazení veškerého obsahu celého záznamu MySQL

  2. Volání Oracle PL/SQL PLS-00201:musí být deklarován identifikátor '001'

  3. přeskočit kopírování do tabulky tmp na disku mysql

  4. NELZE UDĚLIT VYTVOŘENÍ ZOBRAZENÍ NA SCHÉMATU