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

एक निर्धारित अवधि के साथ लगातार तिथियां खोजें जहां एक प्रशिक्षक शेड्यूल करने के लिए उपलब्ध है

यह सुनिश्चित नहीं है कि यह एक बड़े डेटा सेट के विरुद्ध कैसा प्रदर्शन करेगा, लेकिन यह प्रदान किए गए डेटा सेट के लिए सही परिणाम प्राप्त करता है। अनुपलब्ध डेटा बिंदु उपलब्ध माने जाते हैं।

declare @startDate datetime, @endDate datetime, @days int
select @startDate = '6/1/2013', @endDate='6/3/2013', @days=2

select trainer, min(date)
from
    (
    select  trainer,date,
            (select top 1 date
            from mySchedule sInner
            where sInner.date > sOuter.date
                    and sInner.trainer = sOuter.trainer
                    and sInner.Dirty = 1    
                    and sInner.date between @startDate and @endDate
            order by sInner.date) as nextDirtyDate
    from    mySchedule sOuter
    where sOuter.dirty=0
            and sOuter.date between @startDate and @endDate
    ) sub
group by trainer, nextDirtyDate
having dateDiff(d, min(date), isNull(nextDirtyDate,dateAdd(d,1,@endDate))) >= @days


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल 6 टेबल में शामिल हो रहा है

  2. xml कॉलम के विशिष्ट तत्व में पैरामीटर डालने के लिए xml.modify का उपयोग करें

  3. पूर्ण पाठ अनुक्रमणिका के दो स्तंभों पर एक CONTAINS () कैसे करें खोज SQL

  4. SQL सर्वर में दिनांक और समय डेटा प्रकारों के बीच कनवर्ट करना (T-SQL उदाहरण)

  5. मैं एक अद्वितीय बाधा कैसे बना सकता हूं जो नल को भी अनुमति देता है?