查询财务凭证时 不用 for all entries
时间: 2023-09-01 13:08:41 浏览: 50
在查询财务凭证时,如果不想使用"for all entries"语句,可以使用以下两种查询方法:
1. 使用内连接(INNER JOIN):将财务凭证表和相关的表进行内连接,以获取与财务凭证相关的数据。例如:
```
SELECT a.*
FROM bkpf AS a
INNER JOIN bseg AS b ON a.bukrs = b.bukrs AND a.belnr = b.belnr
WHERE b.hkont = '123456'
```
上述SQL语句中,"bkpf"表为财务凭证表,"bseg"表为凭证行项目表,"b.hkont = '123456'"表示查询科目为"123456"的凭证。使用内连接可以避免使用"for all entries"语句,提高查询效率。
2. 使用子查询:将需要查询的数据作为子查询,然后将子查询的结果作为主查询的条件。例如:
```
SELECT *
FROM bkpf
WHERE bukrs = '1000'
AND belnr IN (SELECT belnr FROM bseg WHERE hkont = '123456')
```
上述SQL语句中,子查询"SELECT belnr FROM bseg WHERE hkont = '123456'"返回科目为"123456"的凭证号,主查询"SELECT * FROM bkpf WHERE bukrs = '1000' AND belnr IN (...)"则根据凭证号查询财务凭证。使用子查询的方式也可以避免使用"for all entries"语句,提高查询效率。