Выражения в выражениях SQL - PullRequest
       10

Выражения в выражениях SQL

0 голосов
/ 11 сентября 2018

Я собираюсь сначала извиниться за убитый SQL.Новичок здесь.

Вот моя проблема.

   SELECT Day,
    COUNT(CASE WHEN
          Shopping.Fruits Like '%1%'
            THEN
              'DewBerry'
        WHEN
          Shopping.Fruits Like '%2%'
            THEN
              'Kiwi'
         WHEN 
            Shopping.Fruits Like '%3%'
             THEN
               'Tangerine'
         ELSE
            'Inactive'
      END) AS Total, ***Total As FruitType***
    FROM Shopping
    GROUP BY Day
    ORDER BY Day desc

Все работает, кроме того, что я окружил "***", я пытаюсь отобразить поле FruitType.Моя попытка не сработала.Я чувствую, что это что-то маленькое, я упускаю из виду, но я не могу этого понять.

Это то, что я получаю без Всего как FruitType

Day             Total
9/11/2018 0:00  24
9/10/2018 0:00  113
9/9/2018 0:00   17
9/7/2018 0:00   62
9/6/2018 0:00   94
9/5/2018 0:00   15

Всё помогает,

Спасибо ....

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Это то, что вы пытаетесь сделать?

SELECT s.Day,
       (CASE WHEN s.Fruits Like '%1%' THEN 'DewBerry'
             WHEN s.Fruits Like '%2%' THEN 'Kiwi'
             WHEN s.Fruits Like '%3%' THEN 'Tangerine'
            ELSE 'Inactive'
       END) as FruitType,
      COUNT(*) AS Total
FROM ScreeningManu s
GROUP BY s.Day,
         (CASE WHEN s.Fruits Like '%1%' THEN 'DewBerry'
               WHEN s.Fruits Like '%2%' THEN 'Kiwi'
               WHEN s.Fruits Like '%3%' THEN 'Tangerine'
               ELSE 'Inactive'
          END)
ORDER BY s.Day DESC;
0 голосов
/ 11 сентября 2018

Это может выглядеть как

  SELECT 
    Day,
    SUM(CASE WHEN Shopping.Fruits Like '%1%' THEN 1
             ELSE 0  
         END
       ) AS DewBerry_Count,
    SUM(CASE WHEN Shopping.Fruits Like '%2%' THEN 1
             ELSE 0  
         END
       ) AS Kiwi_Count,
    SUM(CASE WHEN Shopping.Fruits Like '%3%' THEN 1
             ELSE 0  
         END
       ) AS Tangerine_Count,
    SUM(CASE WHEN Shopping.Fruits NOT LIKE '%1%'
              AND Shopping.Fruits NOT LIKE '%2%'
              AND Shopping.Fruits NOT LIKE '%3%' THEN 1
             ELSE 0  
         END
       ) AS Inactive_Count
    FROM ScreeningManu
    GROUP BY Day
    ORDER BY Day desc
...