SQL查询。将两个表相交:显示匹配的记录;但是,另外,如果两个表中都有记录,则显示它们
我有一个查询,但我不知道如何修改它以满足我的需要SQL查询。将两个表相交:显示匹配的记录;但是,另外,如果两个表中都有记录,则显示它们,sql,ms-access,Sql,Ms Access,我有一个查询,但我不知道如何修改它以满足我的需要 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 SE
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% |
与工会合作:
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中不可用。)使用UNION:
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中不可用。)很难说您想要得到什么。您可以发布您的表结构以及一些示例数据(您希望看到什么)吗?很难说您想要得到什么。您能否发布您的表结构以及一些示例数据(您希望看到什么)?