Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

प्रत्येक मान के माध्यम से seq num . तक लूप करें

आपका मतलब यह है?

with myData as
(
select ID,
row_Number() over (partition by Id order by id, StartDate) as SeqNum,
min(startdate) over (partition by Id) as minDate,
startDate, endDate
from myTable
)
select id, seqNum, startDate, endDate, dateadd(day, seqNum*29, minDate) as newDate
from myData;

या यह:

with myData as
(
select ID,
row_Number() over (partition by Id order by id, StartDate) as SeqNum,
min(startdate) over (partition by Id) as minDate, 
max(endDate) over (partition by Id)as maxDate,
startDate, endDate
from myTable
)
select id, seqNum, startDate, endDate, 
 case 
 when maxDate < dateadd(day, seqNum*29, minDate)
 then maxDate 
 else dateadd(day, seqNum*29, minDate) end as newDate
from myData;



  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 सर्वर में ROW_NUMBER () कैसे काम करता है

  3. Azure डेटा स्टूडियो क्या है?

  4. एंटिटी फ्रेमवर्क और (1 से कई)-(कई से 1) (1 - * * - 1) संबंध

  5. कॉलम स्तर WHERE क्लॉज का उपयोग करके सभी SQL NULL मानों को एक से अधिक कॉलम में अपडेट करें?