基本上我有一个包含产品列表和2个二进制字段的表,例如,需要签名,需要跟踪。
然后我有一个信使列表,也有那两个布尔字段。
我想返回一个我们可以用于特定产品的所有快递的列表,知道在一个二进制字段中具有yes的产品在另一个中需要yes。但是没有可以在另一张桌子上有是或否。
ProductNumber trackingrequired signaturerequired
123 yes no
CourierID trackingrequired signaturerequired
1 yes yes
2 no no
3 yes no
4 no yes
5 yes no
查询将返回1 3和5:
ProductNumber CourierID
123 1
123 3
123 5
由于不需要签名,因此第二列上的数据与此情况无关。如有必要,我很乐意改变数据的存储方式。 我正在使用MSAcess。
答案 0 :(得分:0)
没有足够的产品记录来获得体面的样品。但试试:
SELECT Products.ProductNumber, Couriers.CourierID, Couriers.TrackingRequired, Couriers.SignatureRequired
FROM Couriers, Products
WHERE (((IIf([Products]![TrackingRequired]=-1,[Couriers]![TrackingRequired]=-1, IIf(Products!SignatureRequired=-1,[Couriers]![SignatureRequired]=-1,[Couriers]![SignatureRequired]>=-1)))));
答案 1 :(得分:0)
创建了一个“辅助字段”。
((IIf(([tblmarketplaceshippingservices].[Tracked]="Yes" And [tblCourierServices].[Tracked]="No") Or ([tblmarketplaceshippingservices].[SignatureRequired]="Yes" And [tblCourierServices].[Signature Required]="No"),0,1))=1));
然后过滤掉0。基本上唯一不好的情况是第一张桌子上的东西是肯定的,第二张桌子上没有。所有其他的是没有组合是好的。