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

एसक्यूएल समारोह में तारीख के अलावा

अपने प्रश्न को हल करने का सबसे आसान तरीका क्वेरी द्वारा समूह में रोलअप का उपयोग करना है (http://technet.microsoft.com/en-us/library/bb522495(v=sql.105).aspx )

यहाँ SQL Fiddle है (http://sqlfiddle.com/#!3/3ce09/19 )

दिनांक परिभाषा:

create table test (
    Id  INT IDENTITY(1,1),
    date  DateTime,
    balls  int );
insert into test(date, balls) values('11/21/2013',  2);
insert into test(date, balls) values('11/22/2013',  3);
insert into test(date, balls) values('11/23/2013',  4);
insert into test(date, balls) values('11/24/2013',  5);
insert into test(date, balls) values('11/25/2013',  2);
insert into test(date, balls) values('11/26/2013',  5);
insert into test(date, balls) values('11/27/2013',  4);
insert into test(date, balls) values('11/28/2013',  3);
insert into test(date, balls) values('11/29/2013',  9);
insert into test(date, balls) values('11/30/2013',  8);
insert into test(date, balls) values('12/01/2013',  7);
insert into test(date, balls) values('12/02/2013',  4);
insert into test(date, balls) values('12/03/2013',  5);
insert into test(date, balls) values('12/04/2013',  6);
insert into test(date, balls) values('12/05/2013',  2);
insert into test(date, balls) values('12/06/2013',  0);
insert into test(date, balls) values('12/07/2013',  1);

वास्तविक क्वेरी:

select 
  label, 
  balls 
  from ( 
     SELECT  
       (DATEDIFF(d , '11/21/2013' , date) / 7) as week, 
       ((DATEDIFF(d , '11/21/2013' , date) / 7) + 1) as week1, 
       LEFT(CONVERT(VARCHAR, (DateAdd(d, (DATEDIFF(d , '11/21/2013' , date) / 7)*7, '11/21/2013')), 120), 10) +    ' - ' +  
       LEFT(CONVERT(VARCHAR, (DateAdd(d, ((DATEDIFF(d , '11/21/2013' , date) / 7) + 1)*7 - 1, '11/21/2013')), 120), 10) as label, 
       SUM(Balls) as balls 
      FROM test 
      GROUP BY rollup((DATEDIFF(d , '11/21/2013' , date) / 7))   
  ) as t 
  where t.label is not null

परिणाम:

LABEL                       BALLS
2013-11-21 - 2013-11-27     25
2013-11-28 - 2013-12-04     42
2013-12-05 - 2013-12-11     3


  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 सर्वर वातावरण के लिए डीप डायग्नोस्टिक्स डिलीवर करने के लिए दुनिया का पहला SaaS प्लेटफॉर्म पेश करना

  3. टी-एसक्यूएल:स्ट्रिंग कॉन्सैट के साथ समस्या

  4. SQL सर्वर से PHP sqlsrv_connect:SQL सर्वर से कनेक्शन स्थापित करते समय नेटवर्क से संबंधित या आवृत्ति-विशिष्ट त्रुटि उत्पन्न हुई है

  5. टीएसक्यूएल - एक पूर्ण-पाठ का उपयोग करके शामिल होता है CONTAINS