Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:wybierz najnowsze wiersze, których suma pasuje do wartości

Declare @YourTable table (ID int,QTY int,DATE varchar(25), CURRENT_STOCK int)
Insert Into @YourTable values
(1     ,1      ,'Jan'     ,30),
(2     ,1      ,'Feb'     ,30),
(3     ,2      ,'Mar'     ,30),
(4     ,6      ,'Apr'     ,30),
(5     ,8      ,'May'     ,30),
(6     ,21     ,'Jun'     ,30)


Select A.*
 From  @YourTable A
 Where ID>= (
                Select LastID=max(ID)
                 From  @YourTable A
                 Cross Apply (Select RT = sum(Qty) from @YourTable where ID>=A.ID) B
                 Where B.RT>=CURRENT_STOCK
             )

Zwroty

ID  QTY DATE    CURRENT_STOCK
4   6   Apr     30
5   8   May     30
6   21  Jun     30


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń konto pocztowe bazy danych (SSMS)

  2. Używanie SQL Server jako kolejki DB z wieloma klientami

  3. Uprawnienia usług SQL Server 2008 Reporting Services

  4. Zaplanuj zadanie SQL w skonfigurowanych przez użytkownika przedziałach czasowych codziennie

  5. Pakiet dostrajania Spotlight Basic:najlepsze bezpłatne narzędzie do optymalizacji SQL