создание ежемесячного отчета

-3

Я создаю ежемесячный отчет, и у меня есть таблица:

DriverName    TodayDate     WeekNo    KM
----------    ----------    ------    ---
ALI           02-01-2018    1         2
ALI           04-01-2018    1         4
ALI           08-01-2018    2         3
ALI           09-01-2018    2         8
AHMED         05-02-2018    1         9
AHMED         05-02-2018    1         9
...
So on

И я пытаюсь получить такие результаты, как:

DriverName    KM/W1  KM/W2  KM/W3  KM/W4  KM/W5   Total
----------    -----  -----  -----  -----  -----   -----
ALI           6      11     0      0      0       17
AHMED         18     0      0      0      0       18

Я попытался, но не знаю, как написать внутренний запрос выбора:

Select DriverName,(Select KM FROM Traveling Where WeekNo=1) as KM/W1, ... Where Traveling

Кто-нибудь, пожалуйста, помогите! Спасибо!

Теги:
sqlite3

1 ответ

1

Надеюсь это поможет:

SELECT drivername, 
       Sum(CASE 
             WHEN weekno = 1 THEN km 
             ELSE 0 
           END) AS wk1km, 
       Sum(CASE 
             WHEN weekno = 2 THEN km 
             ELSE 0 
           END) AS wk2km, 
       Sum(CASE 
             WHEN weekno = 3 THEN km 
             ELSE 0 
           END) AS wk3km, 
       Sum(CASE 
             WHEN weekno = 4 THEN km 
             ELSE 0 
           END) AS wk4km, 
       Sum(CASE 
             WHEN weekno = 5 THEN km 
             ELSE 0 
           END) AS wk5km, 
       Sum(km)  AS total 
FROM   (SELECT drivername, 
               weekno, 
               Sum(km) km 
        FROM   traveling 
        GROUP  BY drivername, 
                  weekno) AS t 
GROUP  BY drivername 
ORDER  BY total; 

Вот пример sqlfiddle для тестирования.

Снимок демонстрационного запуска:

Изображение 166973

  • 0
    его показывает 0 в wk1km и wk2km
  • 0
    он покажет 0 там, где нет данных. Я только что обновил пост с демонстрационным снимком прогона. Если вы можете возиться со своими данными, я могу дважды проверить, отличаются ли результаты.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню