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

AsifAli72090 спросил: 13 июня 2018 в 03:31 в: sql

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

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

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

1 ответ

Amith Kumar ответил: 13 июня 2018 в 04:30

Надеемся, что это поможет:

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 для тестирования.

Снимок demo run:

AsifAli72090 ответил: 13 июня 2018 в 04:09
его показ 0 в wk1km и wk2km
Amith Kumar ответил: 13 июня 2018 в 04:12
он покажет 0, где нет данных. Я просто обновил сообщение с моментальным снимком демонстрационного запуска. Если вы можете возиться с вашими данными, я могу проверить, отличаются ли результаты.
AsifAli72090 ответил: 13 июня 2018 в 04:19
не удалось решить, но спасибо за помощь +1
Amith Kumar ответил: 13 июня 2018 в 04:31
Я не понимаю, когда вы говорите, что он не работает. Пожалуйста, предоставьте подробности, что не работает. Я использовал ваши данные точно, и ожидаемый & фактический результат соответствует. Я обновил сообщение, точно подсчитывая ваши данные и amp; ожидаемый результат.

Дополнительное видео по вопросу: Создание ежемесячного отчета

1. База SQLite - Установка, создание таблицы, набор SQL-запросов

Базы данных курс. SQL команда CREATE TABLE в базе данных SQLite. Создание таблицы в БД

C# : Использование базы данных SQLite в приложении. Простейший пример