how to retrieve the difference between the two given dates in SQL












-1















How to find the Longest Booking ID for the given two dates and Costliest Booking ID for the given cost.



Here we have the 13 days difference so we are getting the longest booking id as 1.



what are the approach to archive this using sql query.



enter image description here










share|improve this question


















  • 3





    what you have tried?

    – Devsi Odedra
    Nov 22 '18 at 6:48






  • 1





    dont use image give it as text

    – nikhil sugandh
    Nov 22 '18 at 6:48











  • i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

    – AVINASH M
    Nov 22 '18 at 6:53











  • @AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

    – nikhil sugandh
    Nov 22 '18 at 7:06











  • What is the datatype for StartDate and EndDate columns ?

    – Madhur Bhaiya
    Nov 22 '18 at 7:08
















-1















How to find the Longest Booking ID for the given two dates and Costliest Booking ID for the given cost.



Here we have the 13 days difference so we are getting the longest booking id as 1.



what are the approach to archive this using sql query.



enter image description here










share|improve this question


















  • 3





    what you have tried?

    – Devsi Odedra
    Nov 22 '18 at 6:48






  • 1





    dont use image give it as text

    – nikhil sugandh
    Nov 22 '18 at 6:48











  • i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

    – AVINASH M
    Nov 22 '18 at 6:53











  • @AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

    – nikhil sugandh
    Nov 22 '18 at 7:06











  • What is the datatype for StartDate and EndDate columns ?

    – Madhur Bhaiya
    Nov 22 '18 at 7:08














-1












-1








-1








How to find the Longest Booking ID for the given two dates and Costliest Booking ID for the given cost.



Here we have the 13 days difference so we are getting the longest booking id as 1.



what are the approach to archive this using sql query.



enter image description here










share|improve this question














How to find the Longest Booking ID for the given two dates and Costliest Booking ID for the given cost.



Here we have the 13 days difference so we are getting the longest booking id as 1.



what are the approach to archive this using sql query.



enter image description here







mysql sql






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 22 '18 at 6:47









AVINASH MAVINASH M

349




349








  • 3





    what you have tried?

    – Devsi Odedra
    Nov 22 '18 at 6:48






  • 1





    dont use image give it as text

    – nikhil sugandh
    Nov 22 '18 at 6:48











  • i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

    – AVINASH M
    Nov 22 '18 at 6:53











  • @AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

    – nikhil sugandh
    Nov 22 '18 at 7:06











  • What is the datatype for StartDate and EndDate columns ?

    – Madhur Bhaiya
    Nov 22 '18 at 7:08














  • 3





    what you have tried?

    – Devsi Odedra
    Nov 22 '18 at 6:48






  • 1





    dont use image give it as text

    – nikhil sugandh
    Nov 22 '18 at 6:48











  • i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

    – AVINASH M
    Nov 22 '18 at 6:53











  • @AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

    – nikhil sugandh
    Nov 22 '18 at 7:06











  • What is the datatype for StartDate and EndDate columns ?

    – Madhur Bhaiya
    Nov 22 '18 at 7:08








3




3





what you have tried?

– Devsi Odedra
Nov 22 '18 at 6:48





what you have tried?

– Devsi Odedra
Nov 22 '18 at 6:48




1




1





dont use image give it as text

– nikhil sugandh
Nov 22 '18 at 6:48





dont use image give it as text

– nikhil sugandh
Nov 22 '18 at 6:48













i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

– AVINASH M
Nov 22 '18 at 6:53





i tried with : SELECT DATEDIFF(day, '2017/08/25', '2017/08/28') AS DateDiff; but i'm not able to get the max count of that

– AVINASH M
Nov 22 '18 at 6:53













@AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

– nikhil sugandh
Nov 22 '18 at 7:06





@AVINASHM the costliest booking id will be 1 14*3000=42000 the data given is wrong i reckon

– nikhil sugandh
Nov 22 '18 at 7:06













What is the datatype for StartDate and EndDate columns ?

– Madhur Bhaiya
Nov 22 '18 at 7:08





What is the datatype for StartDate and EndDate columns ?

– Madhur Bhaiya
Nov 22 '18 at 7:08












3 Answers
3






active

oldest

votes


















1














this will work:



(SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
UNION ALL
(SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
UNION ALL
(SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY (tariff*DATEDIFF(enddate, startdate)) DESC LIMIT 1)





share|improve this answer

































    0














    with data
    as (select *
    ,row_number() over(order by datediff(dd,end_date,start_date) desc) as rnk_time
    ,row_number() over(order by tarrif desc) as rnk_cost
    ,count(*) over(partition by 1) as tot_cnt
    from your_table
    )
    select 'Total Booking count',tot_cnt
    from data
    where rnk_time=1
    union all
    select 'Longest Booking id',booking_id
    from data
    where rnk_time=1
    union all
    select 'Costliest Booking id',booking_id
    from data
    where rnk_cost=1





    share|improve this answer
























    • ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

      – Salman A
      Nov 22 '18 at 7:02



















    0














    A simple UNION ALL could be used to combine all unrelated results:



    (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
    UNION ALL
    (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
    UNION ALL
    (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY tariff DESC LIMIT 1)


    However I believe costliest booking should be 1 (13 * 3000 = 39000) and calculation must be done using DATEDIFF(...) * tariff.






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425274%2fhow-to-retrieve-the-difference-between-the-two-given-dates-in-sql%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      this will work:



      (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
      UNION ALL
      (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
      UNION ALL
      (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY (tariff*DATEDIFF(enddate, startdate)) DESC LIMIT 1)





      share|improve this answer






























        1














        this will work:



        (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
        UNION ALL
        (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
        UNION ALL
        (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY (tariff*DATEDIFF(enddate, startdate)) DESC LIMIT 1)





        share|improve this answer




























          1












          1








          1







          this will work:



          (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
          UNION ALL
          (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
          UNION ALL
          (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY (tariff*DATEDIFF(enddate, startdate)) DESC LIMIT 1)





          share|improve this answer















          this will work:



          (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
          UNION ALL
          (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
          UNION ALL
          (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY (tariff*DATEDIFF(enddate, startdate)) DESC LIMIT 1)






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 22 '18 at 7:05

























          answered Nov 22 '18 at 6:50









          nikhil sugandhnikhil sugandh

          1,2612719




          1,2612719

























              0














              with data
              as (select *
              ,row_number() over(order by datediff(dd,end_date,start_date) desc) as rnk_time
              ,row_number() over(order by tarrif desc) as rnk_cost
              ,count(*) over(partition by 1) as tot_cnt
              from your_table
              )
              select 'Total Booking count',tot_cnt
              from data
              where rnk_time=1
              union all
              select 'Longest Booking id',booking_id
              from data
              where rnk_time=1
              union all
              select 'Costliest Booking id',booking_id
              from data
              where rnk_cost=1





              share|improve this answer
























              • ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

                – Salman A
                Nov 22 '18 at 7:02
















              0














              with data
              as (select *
              ,row_number() over(order by datediff(dd,end_date,start_date) desc) as rnk_time
              ,row_number() over(order by tarrif desc) as rnk_cost
              ,count(*) over(partition by 1) as tot_cnt
              from your_table
              )
              select 'Total Booking count',tot_cnt
              from data
              where rnk_time=1
              union all
              select 'Longest Booking id',booking_id
              from data
              where rnk_time=1
              union all
              select 'Costliest Booking id',booking_id
              from data
              where rnk_cost=1





              share|improve this answer
























              • ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

                – Salman A
                Nov 22 '18 at 7:02














              0












              0








              0







              with data
              as (select *
              ,row_number() over(order by datediff(dd,end_date,start_date) desc) as rnk_time
              ,row_number() over(order by tarrif desc) as rnk_cost
              ,count(*) over(partition by 1) as tot_cnt
              from your_table
              )
              select 'Total Booking count',tot_cnt
              from data
              where rnk_time=1
              union all
              select 'Longest Booking id',booking_id
              from data
              where rnk_time=1
              union all
              select 'Costliest Booking id',booking_id
              from data
              where rnk_cost=1





              share|improve this answer













              with data
              as (select *
              ,row_number() over(order by datediff(dd,end_date,start_date) desc) as rnk_time
              ,row_number() over(order by tarrif desc) as rnk_cost
              ,count(*) over(partition by 1) as tot_cnt
              from your_table
              )
              select 'Total Booking count',tot_cnt
              from data
              where rnk_time=1
              union all
              select 'Longest Booking id',booking_id
              from data
              where rnk_time=1
              union all
              select 'Costliest Booking id',booking_id
              from data
              where rnk_cost=1






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 22 '18 at 7:00









              George JosephGeorge Joseph

              1,44249




              1,44249













              • ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

                – Salman A
                Nov 22 '18 at 7:02



















              • ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

                – Salman A
                Nov 22 '18 at 7:02

















              ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

              – Salman A
              Nov 22 '18 at 7:02





              ROW_NUMBER requires a recent MySQL version, you must clarify what OP is using.

              – Salman A
              Nov 22 '18 at 7:02











              0














              A simple UNION ALL could be used to combine all unrelated results:



              (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
              UNION ALL
              (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
              UNION ALL
              (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY tariff DESC LIMIT 1)


              However I believe costliest booking should be 1 (13 * 3000 = 39000) and calculation must be done using DATEDIFF(...) * tariff.






              share|improve this answer




























                0














                A simple UNION ALL could be used to combine all unrelated results:



                (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
                UNION ALL
                (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
                UNION ALL
                (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY tariff DESC LIMIT 1)


                However I believe costliest booking should be 1 (13 * 3000 = 39000) and calculation must be done using DATEDIFF(...) * tariff.






                share|improve this answer


























                  0












                  0








                  0







                  A simple UNION ALL could be used to combine all unrelated results:



                  (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
                  UNION ALL
                  (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
                  UNION ALL
                  (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY tariff DESC LIMIT 1)


                  However I believe costliest booking should be 1 (13 * 3000 = 39000) and calculation must be done using DATEDIFF(...) * tariff.






                  share|improve this answer













                  A simple UNION ALL could be used to combine all unrelated results:



                  (SELECT 'Total Booking Count' AS Label, COUNT(*) AS Value FROM bookings)
                  UNION ALL
                  (SELECT 'Longest Booking Id', booking_id FROM bookings ORDER BY DATEDIFF(enddate, startdate) DESC LIMIT 1)
                  UNION ALL
                  (SELECT 'Costliest Booking Id', booking_id FROM bookings ORDER BY tariff DESC LIMIT 1)


                  However I believe costliest booking should be 1 (13 * 3000 = 39000) and calculation must be done using DATEDIFF(...) * tariff.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 22 '18 at 7:15









                  Salman ASalman A

                  177k66338427




                  177k66338427






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425274%2fhow-to-retrieve-the-difference-between-the-two-given-dates-in-sql%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Create new schema in PostgreSQL using DBeaver

                      Deepest pit of an array with Javascript: test on Codility

                      Fotorealismo