Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Procent SQL Server 2005 w nawiasach w tabeli przestawnej

Możesz sformatować wynik zapytania przestawnego tak, jak robisz to z każdym innym. Możesz więc połączyć procent z odpowiednim źródłem. Oto SQL FIDDLE .

SELECT RC.lessonid AS 'lessonid     response count->'
  , convert (varchar(20), isnull([0], 0))
  + isnull (' ('
-- As both numbers are integers don't forget to cast one of them into double
-- If you dislike * 100 format or want more precise result.
  + convert (varchar(20), [0] * 100 / RCN.N)
  + '%)', '') as [0]
  , convert (varchar(20), isnull([1], 0))
  + isnull (' ('
  + convert (varchar(20), [1] * 100 / RCN.N)
  + '%)', '') as [1]
  , convert (varchar(20), isnull([2], 0))
  + isnull (' ('
  + convert (varchar(20), [2] * 100 / RCN.N)
  + '%)', '') as [2]
  , convert (varchar(20), isnull([3], 0))
  + isnull (' ('
  + convert (varchar(20), [3] * 100 / RCN.N)
  + '%)', '') as [3]
  , convert (varchar(20), isnull([4], 0))
  + isnull (' ('
  + convert (varchar(20), [4] * 100 / RCN.N)
  + '%)', '') as [4]
  ,RCN.N
FROM (
    SELECT lessonid
        ,response
        ,count(response) AS respcnt
    FROM tblRChoices
    GROUP BY lessonid
        ,response
    ) TableResponseCount
PIVOT(SUM(respcnt) FOR response IN (
            [0]
            ,[1]
            ,[2]
            ,[3]
            ,[4]
            )) RC
JOIN (SELECT lessonid, count(lessonid) as N FROM tblRChoices GROUP BY lessonid) RCN 
ON RC.lessonid = RCN.lessonid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy NOLOCK jest wartością domyślną dla instrukcji SELECT w SQL Server 2005?

  2. SQL Server 2016:Utwórz użytkownika bazy danych

  3. Jak rozwiązać loginy systemu Azure Windows nie są obsługiwane w tej wersji programu SQL Server?

  4. Jak mogę sprawić, by polecenie win32 (sqlcommand) wydrukowało jego dane wyjściowe na konsoli w PowerShell?

  5. Jak mogę używać jednej puli połączeń mssql na kilku trasach w aplikacji internetowej Express 4?