我在VB.net中使用Access数据库。
我有3张桌子。
现在我期待的是对于我想要的任何特定公司,这样的结果。 假如我正在寻找Company1 ..这应该是结果。如果购买还没有特定的日子..它应该是空白的..就像支付的情况一样
如何使用SQL语句获得此结果..
答案 0 :(得分:4)
您正在寻找的是一个完整的外部加入。您可以使用多个语句和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"
答案 1 :(得分:1)
在这里,我们会在每个日期获得名为“Company1”的公司所需的详细信息。我相信这会对您有所帮助
尝试此查询:
select p.Date as Date,p.Gross as Gross,p.Net as Net,p.Bonus as Bonus,p1.Paid as Payment
from Tab_Purchase p,Tab_Payments p1
where (p.Comp_Id=(select c.Comp_Id
from Tab_Comp c
where Comp_Name='Company1'))
and (p.Date=p1.Date)