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

odejmowanie operacji na dwóch wierszach tabeli tymczasowej w serwerze SQL

SELECT
  [qid1].AgeBelow16 - [qid2].AgeBelow16       AS [AgeBelow16],
  [qid1].Age16_20   - [qid2].Age16_20         AS [Age16_20],
  [qid1].Age21_30   - [qid2].Age21_30         AS [Age21_30],
  [qid1].Age31_40   - [qid2].Age31_40         AS [Age31_40],
  [qid1].Age41_50   - [qid2].Age41_50         AS [Age41_50],
  [qid1].Age51_60   - [qid2].Age51_60         AS [Age51_60]
FROM
  MyTable AS [qid1]
INNER JOIN
  MyTable AS [qid2]
    ON [qid1].QID = [qid2].QID - 1
WHERE
  [qid1].QID = 1

Jeśli to możliwe, znacznie lepiej byłoby jednak przechowywać wartości QID2 jako wartości ujemne. W ten sposób nie musisz wiedzieć, który z nich odjąć od drugiego; to tylko prosta SUMA.

SELECT
  SUM(AgeBelow16) AS [AgeBelow16],   -- (93) + (-13) = 80
  SUM(Age16_20)   AS [Age16_20],     -- (81) + (-11) = 70
  SUM(Age21_30)   AS [Age21_30],     -- (55) + (-15) = 40
  SUM(Age31_40)   AS [Age31_40],     -- (46) + (-16) = 30
  SUM(Age41_50)   AS [Age41_50],     -- (54) + (-14) = 40
  SUM(Age51_60)   AS [Age51_60]      -- (48) + (-18) = 30
FROM
  MyTable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL - Wybierz Top 10 i wyświetl resztę jako „Inne”

  2. Zapytanie o podział na strony dla serwera mssql 2008 zgłaszanie nieprawidłowej składni w pobliżu „przesunięcie”

  3. Stronicowanie wyników SQL Server 2005

  4. Jak zainstalować SQL Server na Ubuntu 18.04

  5. wyświetlanie wielu rekordów za pomocą zestawu wyników