Member 13410460 Ответов: 1

Как вставить все значения отдела, которые будут показаны ?


У меня есть этот код, который я использую в SQL для Vb.net значения для конкретного отдела, но теперь мне нужно, чтобы все отделы были показаны.

SELECT   SUM(Price)                    AS 'Total'
         ,CONVERT(char(7), date, 120)  AS 'year'
		 ,Department as 'Department'
FROM     [dbo].[Expenses]
WHERE    Department=('Electronics')
GROUP BY  Rollup (CONVERT(char(7), date, 120)), Department  
HAVING   CONVERT(char(7), date, 120) >= '2017-01'  
AND      CONVERT(char(7), date, 120) <= '2020-01' 


Я мог бы использовать профсоюз, чтобы показать мне другие отделы, как здесь:

SELECT   SUM(Price)                    AS 'Total'
         ,CONVERT(char(7), date, 120)  AS 'year'
		 ,Department as 'Department'
FROM     [dbo].[Expenses]
WHERE    Department=('Electronics')
GROUP BY  Rollup (CONVERT(char(7), date, 120)), Department  
HAVING   CONVERT(char(7), date, 120) >= '2017-01'  
AND      CONVERT(char(7), date, 120) <= '2020-01' 

Union

SELECT   SUM(Price)                    AS 'Total'
         ,CONVERT(char(7), date, 120)  AS 'year'
		 ,Department as 'Grocery'
FROM     [dbo].[Expenses]
WHERE    Department=( 'Grocery')
GROUP BY  Rollup (CONVERT(char(7), date, 120)), Department  
HAVING   CONVERT(char(7), date, 120) >= '2017-01'  
AND      CONVERT(char(7), date, 120) <= '2020-01' 


Но в таком виде я не мог использовать его для своих карт в Vb.net-да.
Можно ли сделать это по-другому?

Что я уже пробовал:

Это то, что я пробовал, это не дает мне никакой ошибки, но и не даст мне никаких данных


SELECT   SUM(Price)                    AS 'Total'
         ,CONVERT(char(7), date, 120)  AS 'year'
		 ,Department as 'Department'
FROM     [dbo].[Expenses]
WHERE    Department=('Electronics,Grocery')
GROUP BY  Rollup (CONVERT(char(7), date, 120)), Department  
HAVING   CONVERT(char(7), date, 120) >= '2017-01'  
AND      CONVERT(char(7), date, 120) <= '2020-01' 


Но у меня нет никаких результатов.
Спасибо за вашу помощь.

1 Ответов

Рейтинг:
6

Maciej Los

Если вы хотите отобразить оба отдела замените эту строку:

WHERE    Department=('Electronics,Grocery')

с:
WHERE    Department IN ('Electronics', 'Grocery')


Для получения более подробной информации, пожалуйста, смотрите: SQL: в состоянии[^]

Если вы хотите отобразить все отделы, удалите или прокомментируйте их WHERE заявление (используйте double '-'):
-- WHERE Department IN ('Electronics', 'Grocery')


Member 13410460

Спасибо, приятель, это сработало отлично.

Maciej Los

Всегда пожалуйста.