こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

SQL文のエラーについて

下記のSQL文な実行するとエラーになってしまいます。
数時間考えましたが、上手く行きません。

どなたか教えて頂けないでしょう?
宜しくお願いします。

DB:アクセス97 アクセス2000

SQL実行中に以下のエラーが発生しました。
エラーコード:-3010 [Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。
SQLステータス:07001


SELECT
mid(U.受払年月日,1,6),
U.部門CD,
部門マスタ.部門名,
U.商品CD,
商品マスタ.商品名,
U.科目CD,
科目マスタ.科目名,
U.SUM受払数
FROM
(部門マスタ INNER JOIN ((SELECT mid(受払年月日,1,6),部門CD,商品CD,科目CD,SUM(受払数) as SUM受払数
FROM 受払TBL
WHERE 受払年月日 BETWEEN '201101' and '201105'
GROUP BY mid(受払年月日,1,6),部門CD,商品CD,科目CD) AS U
INNER JOIN 商品マスタ ON U.商品CD = 商品マスタ.商品CD) ON 部門マスタ.部門CD = U.部門CD )
INNER JOIN 科目マスタ ON U.科目CD = 科目マスタ.科目CD
ORDER BY
U.受払年月日,
U.部門CD,
U.商品CD,
U.科目CD

投稿日時 - 2011-05-17 19:42:25

QNo.6744611

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>エラーコード:-3010 [Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。
とでてくるのは、SELECTの次のmid(U.受払年月日,1,6)で、U.受払年月日が認識できなくて、
パラメタが足りないっておこられているのでは?

というのは、
★のところ。

FROM
(部門マスタ INNER JOIN ((SELECT mid(受払年月日,1,6),部門CD,商品CD,科目CD,SUM(受払数) as SUM受払数
FROM 受払TBL
WHERE 受払年月日 BETWEEN '201101' and '201105'
GROUP BY mid(受払年月日,1,6),部門CD,商品CD,科目CD) AS U
INNER JOIN 商品マスタ ON U.商品CD = 商品マスタ.商品CD) ON 部門マスタ.部門CD = U.部門CD )
★ここにas uがないのでSELECT句内で、U.XXXとつけても見つからないと思いますが。
INNER JOIN 科目マスタ ON U.科目CD = 科目マスタ.科目CD

fromの次の(と★の直前の)を削除すると、副問い合わせにならないので、
U.XXXはみつかるはずですが。

投稿日時 - 2011-05-18 00:06:37

お礼

回答、ありがとうございます。
すいません。私のスキル不足で申し訳ありません。
削除すると副問い合わせが出来なくなってしまうのでは、ないでしょうか?

投稿日時 - 2011-05-18 19:34:52

ANo.1

部門マスタとInnerJoinする 仮想表 U の[受払年月日]は何桁ですか?
midで6文字切り出している割にはWhere条件のBetweenで6桁記述ですね。

副問い合わせになる部分[U]を独立したクエリで定義したほうが見やすいかも。

投稿日時 - 2011-05-17 20:34:35

補足

回答、ありがとうございます。
受払年月日は、8桁(yyyymmdd)です。
年月(yyyymm)で集計したいと考えてます。
WHERE 受払年月日 BETWEEN '20110101' and '20110531'に訂正します。

投稿日時 - 2011-05-17 20:44:07

お礼

回答、ありがとうございます。

なんとか解決しました。
ありがとうございました。

投稿日時 - 2011-05-18 21:44:42

あなたにオススメの質問