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

Логика на Ledger Report в съхранена процедура

Опитах по-долу, може да ви помогне

SELECT Patient_nbr,
       billno,
       billamount,
       PAID_AMOUNT,
       CASE
         WHEN RNO > 1 THEN Sum(billamount - PAID_AMOUNT)
                             OVER(
                               PARTITION BY Patient_nbr
                               ORDER BY RNO)
         ELSE Iif(( billamount - PAID_AMOUNT ) < 0, 0, billamount - PAID_AMOUNT)
       END
FROM   (SELECT *,
               Row_number()
                 OVER(
                   PARTITION BY Patient_nbr
                   ORDER BY Patient_nbr) AS RNO
        FROM   #Patient_ledger) A 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пуснете външния ключ, без да знаете името на ограничението?

  2. SQL сървърът игнорира главни и малки букви в израза where

  3. Защо преобразуването от DATETIME в DATETIME2 изглежда променя стойността?

  4. Регистърът на транзакциите за базата данни 'databasename' е пълен.

  5. Добавете стойност по подразбиране на полето за дата и час в SQL Server към времева марка