SQL WHERE 子句中的子查询 returns 无

SQL subQuery in WHERE clause returns nothing

我正在执行此查询,其中包含同一个 table 的子查询。

SELECT p.codigo_cl client_code, p.n_ordem proposal_id, p.data proposal_data, p.baumuster proposal_baumuster, p.vendedor proposal_seller_code, p.modelo proposal_model, p.preco_base proposal_base_price, p.preco_ext proposal_extras, p.ia proposal_ia, p.desconto proposal_discount
FROM proposta.DBF p 
INNER JOIN cliente.dbf c ON c.processo = p.codigo_cl 
WHERE p.N_ORDEM = (SELECT MAX(N_ORDEM) FROM proposta.DBF)

因此子查询未返回 N_ORDEM 的最大值,结果为空。

我正在使用 Microsft Visual Fox Pro OLEDB 提供程序

从子查询返回的值只是为了获取相同 table 的最大值以用于 WHERE 子句。

然后我把数据做成json格式post到我的服务器

您可能需要一个相关的子查询。准确猜测您想要什么有点困难,但有根据的猜测是:

SELECT p.codigo_cl client_code, ...
FROM proposta.DBF p INNER JOIN
     cliente.dbf c
     ON c.processo = p.codigo_cl 
WHERE p.N_ORDEM = (SELECT MAX(p2.N_ORDEM)
                   FROM proposta.DBF p2
                   WHERE p2.codigo_cl = p.codigo_cl
                  );

这个有用吗?

SELECT N_ORDEM
FROM proposta.DBF p 
WHERE p.N_ORDEM = (SELECT MAX(N_ORDEM) FROM proposta.DBF)

如果是,则一次添加一个特征,例如连接。

SELECT N_ORDEM
FROM proposta.DBF p 
INNER JOIN cliente.dbf c ON c.processo = p.codigo_cl
WHERE p.N_ORDEM = (SELECT MAX(N_ORDEM) FROM proposta.DBF)