Sql语句((加入?)从多个表中获取结果

Shi*_*lal -5 .net sql ms-access join

我在 VB.net 中使用 Access 数据库。

我有3张桌子。

在此处输入图片说明

现在我期待的是对于我想要的任何特定公司来说都是这样的结果。假设如果我正在寻找 Company1 ..这应该是结果。如果在特定日期没有进行购买..它应该是空白的..同样在付款的情况下 在此处输入图片说明

我怎样才能使用 SQL 语句得到这个结果..

小智 5

您正在寻找的是完整的外部联接。您可以通过使用多个语句和 Union(删除重复项)在 MS Access 中构建等效的 Full Outer join 语句

我相信您可以使用以下内容:

SELECT a.Date, a.Gross, a.Net, a.Bonus, b.Paid as Payment
FROM Tab_Purchase a
LEFT OUTER JOIN Tab_Payments b ON a.Comp_ID = b.Comp_ID AND a.Date = b.Date
WHERE a.Comp_ID = "C1"
UNION
SELECT b.Date, a.Gross, a.Net, a.Bonus, b.Paid as Payment
FROM Tab_Payments b
LEFT OUTER JOIN Tab_Purchase a ON a.Comp_ID = b.Comp_ID AND a.Date = b.Date
WHERE b.Comp_ID = "C1"
Run Code Online (Sandbox Code Playgroud)