2017-11-21 28 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のVisualフォックスプロ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) 

もしそうなった場合は、1つの機能、たとえばジョインを追加してください。

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