![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Posiadam tablicę z listą zgłoszeń, każde zgłoszenie posiada datę utworzenia oraz datę zakończenia. Chciałbym uzyskać informację ile zgłoszeń zostało utworzonych i zakończonych w konkretnych miesiącach. Zapytanie ma zwrócić tabelę rok, miesiąc, ilość zgłoszeń utworzonych, ilość zgłoszeń zakończonych. Zliczenie ma się odbywać na podstawie daty utworzenia i daty zakończenia. Zaznaczam, że zgłoszenie utworzone np w lutym, może być zakończone w kwietniu i powinno ono zostać uwzględnione jako zgłoszenie utworzone w lutym a zakończone w kwietniu.
Póki co doszedłem do tego typu zapytań: informacja na temat zgłoszeń utworzonych w poszczególnych mc: SELECT YEAR( created ) as data , MONTH( created ) as miesiac , COUNT( id ) as ilosc FROM tickets GROUP BY YEAR( created ) , MONTH( created ); informacja na temat zgłoszeń zakończonych w poszczególnych mc: SELECT YEAR( closed) as data , MONTH( closed) as miesiac , COUNT( id ) as ilosc FROM tickets GROUP BY YEAR( closed) , MONTH( closed); Pytanie moje jak zrobić, żeby wynik uzyskać w jednej tabeli za pomocą jednego zapytania do bazy?? Udało mi się stworzyć jeszcze takie zapytanie: SELECT YEAR( created ) AS rok, MONTH( created ) AS miesiac, COUNT( created ) AS utworzone, SUM( if( closed >0, 1, 0 ) ) FROM tickets GROUP BY YEAR( created ) , MONTH( created ) Problem w tym, że to zlicza TYLKO zamknięte zgłoszenia z jednego konkretnego miesiąca, tzn zlicza zgłoszenia utworzone np w lutym i podaje ile zgłoszeń utworzonych w lutym zostało zakończonych w lutym, a jak już wspomniałem w lutym pojawiają się też zamknięte zgłoszenia które były utworzone w styczniu lub grudniu lub jeszcze wcześniej. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany za Twoją radą (IMG:style_emoticons/default/smile.gif)
Poniżej zapytanie które skonstruowałem. Czy to prawda że zamiast COUNT (id) lepiej jest dawać COUNT(1) (IMG:style_emoticons/default/questionmark.gif) SELECT YEAR( created ) AS rok, MONTH( created ) AS miesiac, COUNT( id ) AS ilosc, ( SELECT COUNT( id ) FROM tickets AS z2 WHERE (MONTH( z2.closed ) = MONTH( z.created ) AND YEAR( z2.closed ) = YEAR( z.created )) ) FROM tickets AS z GROUP BY YEAR( created ) , MONTH( created ) Kolejne pytanie jeszcze jakie mi się nasuneło to czy lub jak takie subquery zapisać jako zmienną, wyświetlić oczywiście, oraz w nastpnej kolumnie uzyc jako dzielnika, ponieważ w następnej kolumnie sumuje wartość zgłoszeń, a w następnej kolumnie chciałbym uzyskać średnią dzieląc zsumowaną kwotę przez ilość zamkniętych zgłoszeń? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 04:17 |