SQL不返回某些列中包含空值的记录

时间:2017-11-21 19:55:41

标签: sql database ms-access

使用Microsoft Access,我是SQL新手

尝试返回包含所有客户及其订单的查询,包括没有订单的客户。除了一个没有订单的客户外,几乎所有东西都出现了。

我目前正试图让记录显示在任何查询中:

SELECT Customer.c_num, customer.cname, salesorder.ordernum, 
salesorder.orderamount
FROM (Customer 
INNER JOIN SalesOrder ON Customer.C_num = SalesOrder.C_Num)
WHERE Customer.C_num = "C101"
OR Customer.C_num = "C102"
OR Customer.C_num = "C103"
OR Customer.C_num = "C104"
OR Customer.C_num = "C105"
OR Salesorder.OrderAmount is NULL
ORDER BY Customer.Cname;

我意识到这是非常不理想的,但我一直在尝试我的技能水平内的一切,现在已经开始使用这种仍然失败的不切实际的方法。

拥有C_Num = C105的客户是没有出现的客户

我也尝试过以" C"开头的任何C_Num的WHERE LIKE语句。并且只是返回空白表

简单地开始:

SELECT Customer.c_num, customer.cname, salesorder.ordernum, 
salesorder.orderamount
FROM (Customer 
INNER JOIN SalesOrder ON Customer.C_num = SalesOrder.C_Num)
ORDER BY Customer.Cname;

2 个答案:

答案 0 :(得分:0)

您应该使用tonumber(split(split({@yourfield}," ")[2],"%")[1])/100

加入表格
LEFT

答案 1 :(得分:0)

如果您还想要客户订购,请使用左连接

SELECT Customer.c_num, customer.cname, salesorder.ordernum, 
salesorder.orderamount
FROM Customer 
LEFT JOIN SalesOrder ON Customer.C_num = SalesOrder.C_Num
WHERE Customer.C_num  IN  ('C101','C102','C103', 'C104', 'C105') 

ORDER BY Customer.Cname;

你可以使用IN子句而不是几个OR (我也删除了orderamount并不是我认为对左连接没用的条件)