2017-11-21 16 views
1

동일한 쿼리 테이블 내에서 하위 쿼리를 사용하여이 쿼리를 수행하고 있습니다.WHERE 절의 SQL 하위 쿼리는 아무 것도 반환하지 않습니다.

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 비주얼 폭스 프로 OLEDB 공급자

을 사용하고

그냥 WHERE 절에 사용하기 위해 동일한 테이블의 최대 값을 얻는 것입니다.

그리고는 그때 당신은 아마 상관 하위 쿼리를 필요로 내 서버

+1

'SELECT MAX (N_ORDEM) FROM proposta.DBF'는 자체 결과를 제공합니까? 'SELECT MAX (p2.N_ORDEM) FROM proposta.DBF p2'을 시도해 보셨습니까 –

+0

[mysql] 태그 제거. –

+0

샘플 데이터와 원하는 결과를 제공해야합니다. –

답변

1

이 방법이 효과가 있습니까?

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) 
+0

피드 백에 고마워요. 귀하의 코드를 시도함으로써 문제가 데이터베이스의 모순이라고 발견했습니다. INNER JOIN은 그 일을하지 않았습니다. 도와 주셔서 감사합니다 –

1

에 게시하기 위해 JSON 형식으로 데이터를 확인합니다. 당신이 원하는 것을 정확히 추측하기는 다소 어렵습니다. 그러나 숙련 된 추측은 다음과 같습니다.

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 
       );