我下面有简单的代码
SELECT
c.account,
c.apar_id,
c.amount,
c.client,
c.dim_2,
c.dim_7,
c.due_date,
c.ext_inv_ref,
c.period,
c.voucher_date,
c.voucher_no,
c.voucher_type,
c.sequence_no,
c.rest_amount
FROM acutrans c
LEFT OUTER JOIN aglrelvalue r6
ON r6.client = 'WEBE' AND r6.attribute_id = 'A4' AND r6.rel_attr_id = 'ZG06' AND c.apar_id = r6.att_value
WHERE
c.client = 'WEBE'
AND c.period <='202007'
AND (c.apar_id IS NULL OR c.apar_id ='CL25791')
OR (r6.rel_value IS NULL OR r6.rel_value ='*')
AND (c.dim_7 IS NULL OR c.dim_7 >='')
AND (c.dim_7 IS NULL OR c.dim_7 <='BR36')
用户希望能够通过以下任一方式搜索数据:c.apar_idr6.rel_valuec.dim_7
我似乎在测试中,是为了获取彼此不匹配的数据。非常感谢您的帮助,谢谢
[AND
和OR
混合使用时,通常需要括号。我只能推测您真正想要的是什么,但类似:
WHERE c.client = 'WEBE' AND
c.period <= '202007' AND
(c.apar_id IS NULL OR c.apar_id = 'CL25791') AND
((r6.rel_value IS NULL OR r6.rel_value = '*') AND
(c.dim_7 IS NULL OR c.dim_7 >= '') AND
(c.dim_7 IS NULL OR c.dim_7 <= 'BR36')
)