Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. SQL Query To select result for monthly

SQL Query To select result for monthly

Scheduled Pinned Locked Moved Database
databasehelp
13 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    VishwaKL wrote:

    please help me

    With what? As it is now, there's not even a starting point. Here's one[^].

    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]

    V Offline
    V Offline
    VishwaKL
    wrote on last edited by
    #3

    Thanks for the reply, i am trying to achieve that, but i not able to do that, i tried all possibilities by searching google, so i want query to get the totla number of request raised, solved request month wise for a yearly report

    L 1 Reply Last reply
    0
    • V VishwaKL

      Thanks for the reply, i am trying to achieve that, but i not able to do that, i tried all possibilities by searching google, so i want query to get the totla number of request raised, solved request month wise for a yearly report

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #4

      Google is not an online repository where you can "get queries". I suggest trying (!) to write a select-query, group it by month, and use a subquery to get the correct data.

      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]

      V 1 Reply Last reply
      0
      • L Lost User

        Google is not an online repository where you can "get queries". I suggest trying (!) to write a select-query, group it by month, and use a subquery to get the correct data.

        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]

        V Offline
        V Offline
        VishwaKL
        wrote on last edited by
        #5

        i agree that google is not a repository, i said i am trying with google help only, i am able to get either solved request or total request, but i want them to be combined as i showed in my question,

        L 1 Reply Last reply
        0
        • V VishwaKL

          i agree that google is not a repository, i said i am trying with google help only, i am able to get either solved request or total request, but i want them to be combined as i showed in my question,

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #6

          VishwaKL wrote:

          i said i am trying with google help only

          The documentation on SQL is a bit more helpful. Google is mostly used for finding examples, not solutions.

          VishwaKL wrote:

          i am able to get either solved request or total request, but i want them to be combined as i showed in my question,

          Aight, show us what you got so far :)

          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]

          V 1 Reply Last reply
          0
          • L Lost User

            VishwaKL wrote:

            i said i am trying with google help only

            The documentation on SQL is a bit more helpful. Google is mostly used for finding examples, not solutions.

            VishwaKL wrote:

            i am able to get either solved request or total request, but i want them to be combined as i showed in my question,

            Aight, show us what you got so far :)

            Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]

            V Offline
            V Offline
            VishwaKL
            wrote on last edited by
            #7

            thank you for your support

            1 Reply Last reply
            0
            • V VishwaKL

              Hi I want to select result for yearly report, i want total number of request raised per month and how many request solved per month, it should show '0' if the month not having request and solved request. Like Month Total Requests Solved Request 1 0 0 2 34 30 3 38 38 4 5 5 5 78 67 6 10 10 7 10 9 8 12 11 9 90 89 10 24 23 11 12 10 12 11 09 please help me

              D Offline
              D Offline
              David Mujica
              wrote on last edited by
              #8

              Since you did not post the structure of your table, I will have to give a very general asnwer. Something like: select month(ticket_created_date),count(ticket_created_date),count(ticket_closed_date) from myTickets group by month(ticket_created_date) If this helps, Remeber to vote. :thumbsup:

              V 1 Reply Last reply
              0
              • D David Mujica

                Since you did not post the structure of your table, I will have to give a very general asnwer. Something like: select month(ticket_created_date),count(ticket_created_date),count(ticket_closed_date) from myTickets group by month(ticket_created_date) If this helps, Remeber to vote. :thumbsup:

                V Offline
                V Offline
                VishwaKL
                wrote on last edited by
                #9

                hi i am not having closed date field, i have only requesteddate, and status of the ticket like open/close

                L J 2 Replies Last reply
                0
                • V VishwaKL

                  hi i am not having closed date field, i have only requesteddate, and status of the ticket like open/close

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #10

                  The Group By hint should be more than enough for you to get started.

                  1 Reply Last reply
                  0
                  • V VishwaKL

                    Hi I want to select result for yearly report, i want total number of request raised per month and how many request solved per month, it should show '0' if the month not having request and solved request. Like Month Total Requests Solved Request 1 0 0 2 34 30 3 38 38 4 5 5 5 78 67 6 10 10 7 10 9 8 12 11 9 90 89 10 24 23 11 12 10 12 11 09 please help me

                    M Offline
                    M Offline
                    MS SQL DEVELOPER
                    wrote on last edited by
                    #11

                    Select [MONTH],Count([Total Requests]),COUNT([Solved Request]) From Temp Group By [MONTH]

                    1 Reply Last reply
                    0
                    • V VishwaKL

                      hi i am not having closed date field, i have only requesteddate, and status of the ticket like open/close

                      J Offline
                      J Offline
                      J4amieC
                      wrote on last edited by
                      #12

                      VishwaKL wrote:

                      i have only requesteddate, and status of the ticket like open/close

                      This information was VITAL to the question. Do us all a favour,m in future include all the relevant information for a question - if you're asking for help writing a SQL Query, if you dont tell us the structure of your table, its IMPOSSIBLE to answer. So given that info. The first place to start is to generate numbers 1-12 so you have something to join on (even for those months with zero requests). A recursive common table expression can do this easily:

                      with months (num) as
                      (
                      SELECT 1
                      UNION ALL
                      SELECT num+1
                      from months
                      where num<12
                      )
                      select * from months

                      You'll also need a subquery to pull together the ticket data:

                      select
                      month(requesteddate) as month,
                      count(*) as count,
                      sum(case when status='Closed' THEN 1 ELSE 0 END) as resolved
                      from tickets
                      group by month(requesteddate)

                      You can then use this to LEFT JOIN your month table, and produce the final output you want:

                      with months (num) as
                      (
                      SELECT 1
                      UNION ALL
                      SELECT num+1
                      from months
                      where num<12
                      )
                      select m.num as Month,
                      isnull(t.count,0) as Total,
                      isnull(t.resolved,0) as Totalresolved
                      from months m
                      left join (
                      select
                      month(requesteddate) as month,
                      count(*) as count,
                      sum(case when status='Closed' THEN 1 ELSE 0 END) as resolved
                      from tickets
                      group by month(requesteddate)
                      ) t
                      on m.num = t.month

                      Here's a live example: http://www.sqlfiddle.com/#!6/a8a7b/11[^] Input data:

                      create table tickets
                      (
                      requesteddate datetime,
                      status varchar(10)
                      )

                      insert into tickets
                      values
                      ('2012-01-10','closed'),
                      ('2012-01-20','closed'),
                      ('2012-01-30','closed'),
                      ('2012-02-10','closed'),
                      ('2012-02-20','closed'),
                      ('2012-03-10','closed'),
                      ('2012-03-20','closed'),
                      ('2012-03-30','open')

                      Output:

                      MONTH TOTAL TOTALRESOLVED
                      1 3 3
                      2 2 2
                      3 3 2
                      4 0 0
                      5 0 0
                      6 0 0
                      7 0 0
                      8 0 0
                      9 0 0
                      10 0 0
                      11 0 0
                      12 0 0

                      V 1 Reply Last reply
                      0
                      • J J4amieC

                        VishwaKL wrote:

                        i have only requesteddate, and status of the ticket like open/close

                        This information was VITAL to the question. Do us all a favour,m in future include all the relevant information for a question - if you're asking for help writing a SQL Query, if you dont tell us the structure of your table, its IMPOSSIBLE to answer. So given that info. The first place to start is to generate numbers 1-12 so you have something to join on (even for those months with zero requests). A recursive common table expression can do this easily:

                        with months (num) as
                        (
                        SELECT 1
                        UNION ALL
                        SELECT num+1
                        from months
                        where num<12
                        )
                        select * from months

                        You'll also need a subquery to pull together the ticket data:

                        select
                        month(requesteddate) as month,
                        count(*) as count,
                        sum(case when status='Closed' THEN 1 ELSE 0 END) as resolved
                        from tickets
                        group by month(requesteddate)

                        You can then use this to LEFT JOIN your month table, and produce the final output you want:

                        with months (num) as
                        (
                        SELECT 1
                        UNION ALL
                        SELECT num+1
                        from months
                        where num<12
                        )
                        select m.num as Month,
                        isnull(t.count,0) as Total,
                        isnull(t.resolved,0) as Totalresolved
                        from months m
                        left join (
                        select
                        month(requesteddate) as month,
                        count(*) as count,
                        sum(case when status='Closed' THEN 1 ELSE 0 END) as resolved
                        from tickets
                        group by month(requesteddate)
                        ) t
                        on m.num = t.month

                        Here's a live example: http://www.sqlfiddle.com/#!6/a8a7b/11[^] Input data:

                        create table tickets
                        (
                        requesteddate datetime,
                        status varchar(10)
                        )

                        insert into tickets
                        values
                        ('2012-01-10','closed'),
                        ('2012-01-20','closed'),
                        ('2012-01-30','closed'),
                        ('2012-02-10','closed'),
                        ('2012-02-20','closed'),
                        ('2012-03-10','closed'),
                        ('2012-03-20','closed'),
                        ('2012-03-30','open')

                        Output:

                        MONTH TOTAL TOTALRESOLVED
                        1 3 3
                        2 2 2
                        3 3 2
                        4 0 0
                        5 0 0
                        6 0 0
                        7 0 0
                        8 0 0
                        9 0 0
                        10 0 0
                        11 0 0
                        12 0 0

                        V Offline
                        V Offline
                        VishwaKL
                        wrote on last edited by
                        #13

                        thank you so much J4amieC, it worked for me,

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups