Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

операция за изваждане на два реда от временна таблица в 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

Ако е възможно обаче, би било много по-добре да съхранявате стойностите на QID2 като отрицателни. По този начин не е необходимо да знаете кое да извадите от другото; това е просто СУМА.

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. Грешка при хвърляне на Sql заявка

  2. Как да вмъкнете данни от CSV файл в db таблица на SQL Server с помощта на powershell

  3. Заявка, където две колони са в резултат на вложена заявка

  4. Subsonic 2.2 Генерирано свойство за SQL Server 2008 Дата

  5. Преобразувайте „smalldatetime“ в „datetimeoffset“ в SQL Server (T-SQL примери)