Выбрать несколько столбцов из нескольких строк и вернуть строки с общим количеством - PullRequest
0 голосов
/ 16 сентября 2011

хорошо, это довольно сложно объяснить, я буду стараться изо всех сил, вы можете задавать вопросы, если вы меня не понимаете.

У меня есть таблица, обозначенная так:

TITLE | BRANCH | BRANCH1 | BRANCH2 | BRANCH3

a BRANCH (любой из них) может содержать «банк», «кредит» и т. Д.

, что я хочу сделать, это вернуть строки с различными ветвями исчитать, где заголовок равен «ххх»

что-то вроде:

BANK | xxx Results

CREDIT | xxx Results и т. д.

1 Ответ

0 голосов
/ 16 сентября 2011

Если вы не можете изменить свои таблицы так, чтобы они соответствовали 1FN , вам следует приступить к

  • UNPIVOT столбцам с использованием UNION ALL, дающим вам набор результатовэто соответствует 1FN .
  • . Сделайте это в подвыбор
  • Фильтр на TITLE из этого выбора
  • GROUP BY и COUNTрезультаты

Оператор SQL

SELECT  BRANCH, COUNT(*)
FROM    (
          SELECT TITLE, BRANCH FROM MyTable 
          UNION ALL SELECT TITLE, BRANCH1 FROM MyTable 
          UNION ALL SELECT TITLE, BRANCH2 FROM MyTable 
          UNION ALL SELECT TITLE, BRANCH3 FROM MyTable 
        ) q
WHERE   TITLE = 'ATitle'        
GROUP BY
        BRANCH
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...