Как изменить макет или таблицу из SQL данных - PullRequest
0 голосов
/ 09 марта 2020

Я хочу изменить запрос SQL, но не знаю как.

В настоящее время я объединяю 3 таблицы, чтобы получить один результат. На самом деле мое ожидание результата будет примерно таким: это ожидаемый результат . Но текущий SQL, в котором я сделал результат, будет похож на текущий результат с запросом, который я использовал, например

SELECT 
    KioskLocation, RatingCode, 
    COUNT(RatingCode) AS RatingCount 
FROM 
    [Transaction] AS A 
INNER JOIN 
    [Kiosk] AS B ON A.TXKioskID = B.KioskID 
INNER JOIN 
    [Rating] AS C ON A.TXRatingID = C.RatingID 
WHERE 
    A.TXDate >= '2020-02-26' 
    AND A.TXDate < '2020-02-28' 
GROUP BY 
    RatingCode, KioskLocation 
ORDER BY 
    KioskLocation

Как мне изменить этот запрос SQL, чтобы получить ожидаемый вывод?

Извините, мой английский sh такой плохой.

1 Ответ

0 голосов
/ 09 марта 2020

Вы можете написать запрос с условным агрегированием, как указано ниже в SQL Сервер.

SELECT 
    KioskLocation, CASE WHEN RatingCode = 'Bad' THEN COUNT(RatingCode) END AS Bad,
     CASE WHEN RatingCode = 'Good' THEN COUNT(RatingCode) END AS Good,
      CASE WHEN RatingCode = 'NotGood' THEN COUNT(RatingCode) END AS [NotGood],
     CASE WHEN RatingCode = 'VeryGood' THEN COUNT(RatingCode) END AS [VeryGood],
      CASE WHEN RatingCode = 'Excellent' THEN COUNT(RatingCode) END AS [Excellent]
FROM 
    [Transaction] AS A 
INNER JOIN 
    [Kiosk] AS B ON A.TXKioskID = B.KioskID 
INNER JOIN 
    [Rating] AS C ON A.TXRatingID = C.RatingID 
WHERE 
    A.TXDate >= '2020-02-26' 
    AND A.TXDate < '2020-02-28' 
GROUP BY 
    KioskLocation 
ORDER BY 
    KioskLocation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...