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

Melakukan perhitungan di sql

Saya pikir menambahkan ekspresi kasus berikut ke pernyataan pilih Anda harus melakukannya:

CASE WHEN 
   SUM(LandingDetails.Quantity * LandingDetails.UnitPrice) 
   - 
   SUM(LandingDetails.Quantity * LandingDetails.UnitPrice) * DeductionRate + WeeklyDeductionRate 
   > FromMinimumReturn 
THEN SUM(LandingDetails.Quantity * LandingDetails.UnitPrice) * DeductionRate + WeeklyDeductionRate
ELSE 0 END
AS TotalDeductions

Namun, ini memiliki banyak kode berulang (perhitungan Hutang), jadi saya akan membungkus kueri asli dalam ekspresi tabel umum dan melakukannya seperti ini:

WITH cte AS (
  <<<your original query here>>> -- I left it out to save space...
)

SELECT 
    ContactId,
    Owed,
    WeeklyDeductionRate,
    FromMinimumReturn,
    DeductionRate,
    CASE 
       WHEN Owed - (Owed * DeductionRate + WeeklyDeductionRate) > FromMinimumReturn 
       THEN Owed * DeductionRate + WeeklyDeductionRate
       ELSE 0 END
    AS TotalDeductions
FROM cte

Ini akan kembali ke TotalDeductions yang dihitung jika mengurangkannya dari Hutang meninggalkan hasil dari FromMinimumReturn jika tidak maka akan mengembalikan 0 untuk TotalDeductions.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Teknik Optimasi Kueri di SQL Server:5 Praktik Terbaik untuk Meningkatkan Kinerja Kueri

  2. Migrasi Database Keanggotaan ASP.NET ke SQL Azure

  3. Bagaimana saya bisa melihat semua karakter khusus yang diizinkan di bidang varchar atau char di SQL Server?

  4. DATEDIFF() Mengembalikan Hasil yang Salah di SQL Server? Baca ini.

  5. SQL SERVER NON-Clustered Index pada variabel tabel?