2015-03-13 2 views
2

Код:SQL запрос о печати 3 таблицы сразу

select count(*) AS "NR_COMEDIES" from COMEDY 

select count(*) AS "NR_DRAMAS" from DRAMA 

select count(*) AS "NR_TRAGEDIES" from TRAGEDY 

Я пытаюсь напечатать функцию подсчета всех 3-х таблиц в один большой стол.

Где каждая таблица имеет свой собственный столбец, названный сверху. Как я могу сделать все 3 таблицы в одной огромной таблице?

Я пробовал использовать союз, но это не работает.

+0

Хотите SUM подсчет всех трех таблиц? –

+0

Нет, просто распечатайте таблицу в сочетании с столбцами NR_COMEDIES, NR_DRAMAS, NR_TRAGEDIES, где каждая таблица показывает количество соответствующих таблиц. – geforce

ответ

2

Может быть CROSS JOIN должны работать для вас

SELECT A.NR_COMEDIES, 
     B.NR_DRAMAS, 
     C.NR_TRAGEDIES 
FROM (SELECT Count(*) AS "NR_COMEDIES" 
     FROM COMEDY) A 
     CROSS JOIN (SELECT Count(*) AS "NR_DRAMAS" 
        FROM DRAMA)B 
     CROSS JOIN (SELECT Count(*) AS "NR_TRAGEDIES" 
        FROM TRAGEDY) C 

или Делают Cartesian product между всеми запросами

SELECT A.NR_COMEDIES, 
     B.NR_DRAMAS, 
     C.NR_TRAGEDIES 
FROM (SELECT Count(*) AS "NR_COMEDIES" 
     FROM COMEDY) A, 
     (SELECT Count(*) AS "NR_DRAMAS" 
     FROM DRAMA)B, 
     (SELECT Count(*) AS "NR_TRAGEDIES" 
     FROM TRAGEDY) C 
+0

Спасибо, это именно то, что я хотел. Я забыл о перекрестном соединении, должен будет рассмотреть его. – geforce

2

3 суб выбирает ...

select 
    (select count(*) from COMEDY) as "NR_COMEDIES", 

    (select count(*) from DRAMA) AS "NR_DRAMAS", 

    (select count(*) from TRAGEDY) AS "NR_TRAGEDIES" 
from 
    SYSIBM.SYSDUMMY1 
+0

Неверный синтаксис DB2 SQL. – mustaccio

+1

Будет работать, если вы добавите 'FROM sysibm/sysdummy' –

Смежные вопросы