Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pilih kueri pemetaan SQL

Coba ini:

;WITH Subtotals
AS
(
  SELECT
    T1.Id, T1.CodeId, SUM(T2.Value) SubTotal  
  FROM Tb1 T1
    JOIN Tb1 T2
       ON T1.CodeId = T2.CodeId
         AND T1.Id >= T2.Id
  GROUP BY T1.Id, T1.CodeId
)
SELECT
    S.ID,
    S.CodeID,
    T1.Value,
    CASE WHEN T2.value >= S.Subtotal
         THEN T1.value
         ELSE T1.value - (S.Subtotal - T2.value)
    END UsedValue,
    T2.Value T2Value
FROM Subtotals S
   JOIN Tb2 T2
      ON S.CodeId = T2.CodeId
   JOIN Tb1 T1
      ON S.Id = T1.Id
WHERE T2.Value >= S.SubTotal - T1.Value

Lihat hasil di SQL FIDDLE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mendapatkan sum(col2) sebagai somename,(col2*col3)/Sum(col2) sebagai somename1 untuk beberapa tanggal

  2. Jatuhkan semua tabel yang namanya dimulai dengan string tertentu

  3. Masalah penyisipan baris terminator massal

  4. Bagaimana cara melakukan GROUP BY pada kolom alias di MS-SQL Server?

  5. TransactSQL untuk menjalankan skrip TransactSQL lainnya