Как считать записи из нескольких столбцов, используя sql и asp.net? - PullRequest
0 голосов
/ 07 июля 2010

У меня есть таблица с 5 столбцами: ID, Session1, Session2, Session3, Session4.Что я хочу сделать, это отобразить количество одинаковых элементов в каждом столбце.Один и тот же элемент не может отображаться более чем в одном столбце.

ID   Session1   Session2   Session3   Session4  
--   --------   --------   --------   --------  
1    Music      Web        Tech       Future  
2    Art        Articles   Search     Introduction  
3    Music      Books      Camera     Phone  
4    Music      Glass      Cup        Future  
5    Art        Books      Tech       Future  
6    Music      Glass      Cup        Phone

Я хочу отобразить его на странице asp.net следующим образом.

Музыка: 4
Искусство: 2
Сеть: 1
Статьи: 1
Книги: 2
Стекло: 2
Технология: 2
Поиск: 1
Камера: 1
Кубок: 2
Будущее: 3
Введение: 1
Телефон: 2

Как мне создать SQL-запроси отображать их на asp.net?

Ответы [ 3 ]

1 голос
/ 07 июля 2010

С SQL Server вы можете сделать что-то вроде этого:

  SELECT Session, COUNT(*) FROM (
  SELECT Session1 AS Session FROM TableName
  UNION ALL
  SELECT Session2 AS Session FROM TableName
  UNION ALL
  SELECT Session3 AS Session FROM TableName
  UNION ALL
  SELECT Session4 AS Session FROM TableName) T1
  GROUP BY Session

Это не красиво, но должно работать.

1 голос
/ 07 июля 2010

Вы можете просто использовать:

SELECT
    session1,
    COUNT(*)
FROM
    My_Table
GROUP BY
    session1
UNION ALL
SELECT
    session2,
    COUNT(*)
FROM
    My_Table
GROUP BY
    session2
...
0 голосов
/ 07 июля 2010

попробовать:

  Select z.Val, Count(*) ValueCount
  From   (Select Distinct session1 val From Table Union
          Select Distinct session2 val From Table Union
          Select Distinct session3 val From Table Union
          Select Distinct session4 val From Table) Z
     Join Table t on Z.Val In (t.Session1, t.Session2, t.Session3, t.Session4)
  Group By z.Val
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...