Pomoc w utworzeniu kwerendy

Odpowiedz Nowy wątek
2019-05-10 11:32
0

Cześć,
na wstępie zaznaczę, że bardzo słabo znam SQL a to co chce zrobić ma mi po prostu ułatwić pracę.
Sytuacja jest taka, że mam tabele 'zgłoszenia' a niej między innymi kolumny 'id, 'data utworzenia' i 'data zakończenia'.
Potrzebuję wyciągnąć z tej tabeli kwerendą ile zgłoszeń zostało utworzonych w danym miesiącu, a ile zostało zamkniętych i pogrupować to właśnie po miesiącach.
W tej chwili mam coś takiego:

SELECT
         absmonth("Created Time") AS Miesiac,
         count("Request"."RequestID"),
         count("Request"."Completed Time")
FROM  "Request" 
GROUP BY  absmonth("Created Time") 

Niestety zlicza mi źle zakończonego zgłoszenia, bo najprawdopodobniej grupuje po "Created Time". Nie wiem jak w SQL po prostu wrzucić kolejne miesiące nie ciągnąć ich z żadnych pól, co prawdopodobnie zaburza moje wyniki.

Pozostało 580 znaków

2019-05-10 11:47
0

Jaki SQL?

Propozycja:

select
FORMAT("Created Time", 'yyy-MM') as Month,
count("RequestID") as NumOfCreat

FROM  "Request" 

GROUP BY  "Month"

Druga tabelka:

select
FORMAT("Completed Time",  'yyy-MM') as Month,
count("RequestID") as NumOfCompl

FROM  "Request" 

GROUP BY  "Month"

Można oczywiście zrobić jedną (LEFT JOIN).

Pozostało 580 znaków

2019-05-10 12:05
0

Właśnie potrzebuje to zrobić w jednej.
Group by month powoduje, że dla zamkniętych zgłoszeń wyrzuca mi w wyniku wszystkie utworzone np w Marcu a i zamknięte kiedykolwiek później.
Potrzebuje się odnieść do tego ile w danym miesiącu było utworzonych a ile zostało zamkniętych (a mogły być utworzone w poprzednich miesiącach).

Korzystam z narzędzia manage engine analitics i tam jest jakiś wbudowany interpreter sql, info z dokumentacji:
SQL (Structured Query Language) driven querying for powerful report creation. Write SQL queries in any of the familiar database dialects, including SQL Server, DB2, MySQL, PostgreSQL.

Pozostało 580 znaków

2019-05-10 12:09
0

Trochę nie rozumiem.
Chcesz mieć tabelkę z 3 kolumnami, tak?

Miesiąc | Liczba otwartych | Liczba zamkniętych

Tak? Czy jeszcze coś innego?

Pozostało 580 znaków

2019-05-10 12:36
0

Tak, z tym że dla 2 i 3 kolumny są różne warunki.
Liczba otwartych - ma mi pokazać ile w miesiącu było utworzonych zgłoszeń.
Liczba zamkniętych - ma mi pokazać ile zgłoszeń było zamkniętych w danym miesiącu, a utworzone mogły być kiedykolwiek wcześniej.

Grupując to po 'Created Time' pokazuje mi błędnie liczbę zamkniętych, ponieważ wyrzuca mi wszystkie zamknięte, które były utworzone w marcu, a zamknięte kiedykolwiek później.

Pozostało 580 znaków

2019-05-10 12:58
0

Próbowałeś moje zapytania? Na razie odrębnie. Dobre liczby?

Pozostało 580 znaków

2019-05-10 13:15
0

Odrębnie wychodzi ok, z tym że FORMAT() powoduje mi błąd i robię to tak:

SELECT
         absmonth("Completed Time") as Month,
         count("RequestID")
FROM  "Request" 
GROUP BY  "Month" 

Pozostało 580 znaków

2019-05-10 13:20
0

Coś w ten deseń:
https://dbfiddle.uk/?rdbms=po[...]040e4e9ca2986a283aa3f23664a42

Pozostało 580 znaków

2019-05-10 13:30

Albo:

SELECT
    CRT.Month,
    CRT.NumOfCreat,
    COT.NumOfCompl

FROM
(
SELECT 
    absmonth("Created Time") as Month, 
    count("RequestID") as NumOfCreat
FROM 
    "Request"   

GROUP BY "Month" 
) as CRT

LEFT JOIN
(
SELECT 
    absmonth("Completed Time") as Month, 
    count("RequestID") as NumOfCompl
FROM 
    "Request"   

GROUP BY "Month" 
) as COT on COT.Month = CRT.Month

Pozostało 580 znaków

2019-05-10 13:42
0

Rozwiązanie @Qlikeers zadziałało! :)
Dziwnie tylko sortuje, bo leci alfabetycznie i mam tak:

Luty 2018

Luty 2019

A powinno być

Luty 2018

Marzec 2018

Pokombinuje z tym, ale na tą chwile wielkie dzięki za pomoc!

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0