Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

phép trừ trên hai hàng của bảng tạm thời trong máy chủ 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

Tuy nhiên, nếu có thể, tốt hơn hết bạn nên lưu trữ các giá trị QID2 dưới dạng phủ định. Bằng cách đó, bạn không cần biết cái nào để trừ cái kia; nó chỉ là một SUM đơn giản.

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. IS NULL so với =NULL trong mệnh đề where + SQL Server

  2. truy vấn sql - lấy tất cả các bản ghi dựa trên cờ

  3. KIỂM TRA CONSTRAINT trên nhiều cột

  4. Cách sao lưu tệp SQL Server 2014 Express Localdb (.mdf) theo chương trình

  5. Dấu phẩy Được phân tách danh sách các hàng của một cột với nhóm theo các cột khác