• ベストアンサー

SELECTについて

データベースはACCESSでVCにて下記プログラムを実行すると、SQLExecDirectの戻り値が-1となりエラーとなってしまいます。SQLGetDiagRecにてエラー内容を取得したところ"パラメータが少なすぎます。1を指定してください。"とでました。知ってる人に聞いたところ恐らくSELECTの内容が間違っていると指摘を受けましたが、文法上で何がおかしいのか全くわかりません。間違いがわかる方ご教授お願いします。 /*------------------------------------------------------------------------*/ /* SQL文の設定 */ /*------------------------------------------------------------------------*/ sprintf (sql, "SELECT m.mtcode, m.mtname, m.ivunit \ FROM tbl_stock s INNER JOIN tbl_mst_materials m ON m.mtcode=m.mtcod \ WHERE NOT s.rmflag='1' AND s.rcstat='0' \ ORDER BY m.mtcode" ); /*------------------------------------------------------------------------*/ /* SQL文の検索実行 */ /*------------------------------------------------------------------------*/ rc = SQLExecDirect (hstmt, sql, SQL_NTS); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { // SQL実行異常 CRMEmrSQLGetError (SQL_HANDLE_STMT, hstmt, &sErrMsg[0]); return (STS_ERROR); }

質問者が選んだベストアンサー

  • ベストアンサー
  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

INNER JOIN の条件が 間違ってるのでは? >m.mtcode=m.mtcod 同じテーブルでジョインって できましたっけ?

参考URL:
http://www.pursue.ne.jp/SQLDoc/select17.htm
hanada
質問者

お礼

早速のご回答ありがとうございます。 sテーブルとmテーブルをジョインするつもりでした。 しかも"mtcod"でなく"mtcode"の間違いで、スペルミス!!! 質問する以前の問題でした。 皆様の貴重な時間をくだらないことで費やしてしまい。 真に申し訳ありませんでした。 徹夜明けの質問で頭が溶けていました。重ね重ね申し訳ありませんでした。

その他の回答 (1)

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.2

はじめまして。 FROM tbl_stock s INNER JOIN tbl_mst_materials m ON m.mtcode=m.mtcod \ ↓ FROM tbl_stock s INNER JOIN tbl_mst_materials m ON s.mtcode=m.mtcod \ じゃあないですか?

hanada
質問者

お礼

的確なご回答ありがとうございました。 ご指摘のとおりsテーブルとmテーブルをジョインするつもりでした。 しかも"mtcod"でなく"mtcode"の間違いで、スペルミス!!! 質問する以前の問題でした。 皆様の貴重な時間をくだらないことで費やしてしまい。 真に申し訳ありませんでした。 徹夜明けの質問で頭が溶けていました。重ね重ね申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう