Как получить максимальное значение из 2 таблиц - PullRequest
7 голосов
/ 16 октября 2011

Использование Sql Server

Я хочу получить максимальное значение из двух таблиц

Table1

ID Total

101 100
102 600
.....

Table2

ID Total

101 300
102 400
....

Я хочуполучить максимальное значение из 2 таблиц в соответствии с идентификатором

Ожидаемый результат

ID Total

101 300 (max value in table2)
102 600 (max value in table1)
....
...

Как создать запрос

Нужна справка по запросу

Ответы [ 3 ]

10 голосов
/ 16 октября 2011
SELECT
   ID, MAX(Total)
FROM
    (
    SELECT ID, Total FROM Table1
    UNION ALL
    SELECT ID, Total FROM Table2
    ) foo
GROUP BY
   ID
2 голосов
/ 16 октября 2011
; with
q_00 as (
select id, Total from Tbl_1
union all
select id, Total from Tbl_2
)
select id, max(Total)
from q_00
group by id
order by id ;
1 голос
/ 16 октября 2011

Еще один вариант, который стоит рассмотреть, может быть

WITH T(ID, Total)
     AS (SELECT ID,
                MAX(Total)
         FROM   Table1
         GROUP  BY ID
         UNION ALL
         SELECT ID,
                MAX(Total)
         FROM   Table2
         GROUP  BY ID)
SELECT ID,
       MAX(Total) AS Total
FROM   T
GROUP  BY ID  

Если ID,Total проиндексировано в двух таблицах, возможно, это может дать лучший план (не проверено)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...