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

एसक्यूएल परिणामों में खाली तिथियों को पैड करने का सबसे सरल तरीका क्या है (या तो MySQL या पर्ल एंड पर)?

जब आपको सर्वर साइड पर ऐसा कुछ चाहिए, तो आप आमतौर पर एक टेबल बनाते हैं जिसमें दो बिंदुओं के बीच सभी संभावित तिथियां होती हैं, और फिर क्वेरी परिणामों के साथ इस तालिका में शामिल हो जाती हैं। कुछ इस तरह:

create procedure sp1(d1 date, d2 date)
  declare d datetime;

  create temporary table foo (d date not null);

  set d = d1
  while d <= d2 do
    insert into foo (d) values (d)
    set d = date_add(d, interval 1 day)
  end while

  select foo.d, count(date)
  from foo left join table on foo.d = table.date
  group by foo.d order by foo.d asc;

  drop temporary table foo;
end procedure

इस विशेष मामले में क्लाइंट पक्ष पर थोड़ा सा चेक डालना बेहतर होगा, अगर वर्तमान तिथि previos+1 नहीं है, तो कुछ अतिरिक्त तार डालें।



  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. MySQL को MariaDB 10 में अपग्रेड करें (भाग 2 - MariaDB/MySQL 5.5 को संस्करण 10.0 में अपग्रेड करें)

  3. INSERT INTO... सभी MySQL कॉलम के लिए चुनें

  4. प्रमाणीकरण प्लगइन 'caching_sha2_password' लोड नहीं किया जा सकता

  5. AWS RDS पर MySQL डेटाबेस और Oracle डेटाबेस के साथ JDeveloper का उपयोग करना, भाग 2