SQL-запрос.Пересечь две таблицы: показать совпадающие записи;НО, кроме того, покажите записи, если они существуют в любой таблице - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть запрос, но я не могу понять, как его изменить для удовлетворения моих потребностей.

SELECT POST_DATE, R1SUM AS Batch, R2SUM AS DailySF, Format( (R2SUM/(R2SUM+R1SUM)), 'Percent') AS Throughput
FROM 
(SELECT (COL1+COL2+COL3+COL4) as R1SUM, DAY
FROM DVDR)  AS r1, 
(SELECT  sum(TOTAL) as R2SUM, POST_DATE
FROM SENTSF
WHERE TMC=444)  AS r2
WHERE DAY=POST_DATE

Когда в таблице R1 нет совпадающих дней в R2 (или наоборот), этот запросне показывает запись;но мне нужно отразить это с 0 значениями для отсутствующей записи).

Должен работать в MSAccess.

Table1:
DATE  | COL1 | COL2 | COL3 | COL4 | 
1-1-1 |  2   |  1   |   1  |   1  |
1-1-1 |  4   |  5   |   1  |   1  |
1-2-1 |  1   |  2   |   2  |   2  |

Table2 :
DATE  | TOTAL| 
1-1-1 |  2   | 
1-1-1 |  6   | 

Я хочу, чтобы он отображал финальную таблицу:

DATE  | DailyBatch | DailySF | Throughput| 
1-1-1 |  16         |  8     |     50%   |
1-2-1 |  7          |  0     |      0%   |

1 Ответ

3 голосов
/ 16 декабря 2011

С СОЮЗОМ:

SELECT POST_DATE, 
       sum(R1SUM) AS Daily_Batch, 
       sum(R2SUM) AS Daily_SFs, 
       Format( (sum(R2SUM)/sum(R2SUM+R1SUM)), 'Percent') AS Throughput
FROM 
(SELECT DAY as POST_DATE, (
        COL1+COL2+COL3+COL4) as R1SUM, 
        0 as R2SUM 
 FROM D_VDR 
 union all
 SELECT POST_DATE, 
        0 as R1SUM, 
        sum(TOTAL) as R2SUM 
 FROM SENT_SF 
 WHERE TMC=444
) AS sq
group by POST_DATE

(По сути, это симуляция полного внешнего соединения, которое, как я понимаю, недоступно в Access.)

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