sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:vælg de nyeste rækker, hvis sum matcher en værdi

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
             )

Returnering

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


  1. Regex for at finde ud af, om et tal er inden for et interval, f.eks. 1,3,10-15,17

  2. PostgreSQL:VACCUM FULL vs pg_dump og gendan

  3. Den mest effektive måde at få tabelrækker på

  4. Tæl med IF-tilstand i MySQL-forespørgsel