• ベストアンサー

GridでSQLを使うのに苦労してます。

masabou7の回答

  • masabou7
  • ベストアンサー率18% (2/11)
回答No.2

要するに「伝票番号」単位で集約して表示したいのでしょうか? であれば、「GROUP BY」を使ってみてはどうでしょうか? それでも、出来ない場合は、VB側でLOOPしながら合計をカウントするしかないでしょうね。

noname#12942
質問者

お礼

そうです、「伝票番号」単位で集約して表示したいのです。 [GROUP BY]をなかなか上手く使えなかったので、LOOPしながらカウントすることにしました。 ご指導ありがとうございます。 指導教官より今日メールが… バグが見つかったそうです。 (何のバグかはまだ詳しく聞かされていませんが) ちょっと前進できそうな気がしてきました。 次回、質問をするときは、自分の分からないところをはっきりと伝えられるようになっていたいなと思っております。それでは。

関連するQ&A

  • 大変苦しい説明ですが、これで精一杯です。

    こんにちわ。 VBとACCESSを使って伝票を作っています。 *利用環境は"Windows Me","Visual Basic 6.0 Pro","ACCESS 2000" です。 *注文詳細伝票テーブル(伝票番号、{行番号、商品コード、数量})があります。   {}内はGridの中です。   そして、商品コードを入力すると、商品名が出てきて、数量を入力すると、   商品の{単価*数量}の計算がなされた金額が表示されるようになっています。    (こちらの環境は他のプロジェクトで制作し、既に完成しました。) *伝票番号1に対し、行番号が多あり、その伝票番号の行番号に入力した値の商品コードと数量が出力されます。 *これまでに入力(insert)のみを設定しましたが、入力した通りに出力されず、行番号昇順で順々に一行ずつ出力されます。 ex)(10001[伝票番号],1[行番号],3[商品コード],6[数量])(10001,2,5,7)(10001,3,9,2) *私の予測では、 Grid1.rows , Grid1.row , Grid1.rowsel のいずれかをFor文 で反復していけば、一つの伝票番号につき入力した行数分が一回で出力されるのでは…と予測しているのですが…色々やってみたのですが、どれも駄目でした。 いっそ、失敗プログラムごとこのコーナーに貼り付けてしまおうと思ったのですが、字数オーバーの為、断念致しました。 *苦しい説明で恐縮ですが、一つの伝票番号[10001]分丸ごと一遍に、行番号[1,2,3,…]と出力させるには、どのようなプログラムを行えばいいのか、どなたか教えてください。お願いします。

  • ACCESSのクエリで同じSQL文だが結果が異なる

    ACCESS2003にて 選択クエリAをSQLビューで開きSQL文をコピー、 新規作成したクエリBのSQLビューに貼り付けて実行したところ、 AとBで結果の件数が異なりました。 そのままBを保存して終了。 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと同じ件数の結果になりました。 再度Bを保存して終了し、 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと異なる件数(元の結果)になりました。 何が原因なのでしょうか。 SQL文の内容は、サブクエリを含んでいて、サブクエリのFROMは SQLSERVERのリンクテーブルです。 よろしくお願いします。

  • (2)-SQL文の書き方を教えてください。

    table項目:名称、日付、数量。 以上のtabelから以下のクエリーをつくりたいです: クエリー項目:名称、当日数量、当月数量。 日付の値は、フォーム上で指定する。 具体的に:フォーム上日付欄に2003/10/01と2003/10/30を指定し、実行すると、当日数量は、2003/10/30その日の合計数が出る。当月数量に指定された10/01から10/30までの数字の合計がでる。 今、片方だけ条件のSQL文を書けるですが、二つ条件のSQL文がとても難しい。 そうゆうSQL文を教えていただけませんか? よろしくお願いいたします。

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

  • 【再】2)-SQL文の書き方を教えてください。

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=694458 先日この問題で投稿しましたが、未完成のため、再度要望を整理し、ご指導をお願いいたします。 W←tabel名:名称、日付、数量 明細データ:     名称   日付    数量 A   2003/10/01   200 B   2003/10/03   500 C   2003/10/10   4000 A   2003/10/03   200 A   2003/10/03   100 C   2003/10/15   100 B   2003/10/15   300 C   2003/10/15   50 B   2003/10/15   60 求めているクエリーのイメージ:    2003/10/15 時点 ================================================ 名称     当日数量     当月数量     A          0       300     B         360       860     C         150       4150 ------------------------------------------------- 先日教えてもらったSQL文、希望のクエリーを作れないです。 -------------------------------------------------- select 名称, sum(AAA) as 当日数量, sum(BBB) as 当月数量 from ( select 名称, 0 as AAA, sum(数量) as BBB from W where 日付 >= #2003/10/01# and 日付 <= #2003/10/15# group by 名称 union select 名称, sum(数量) as AAA, 0 as BBB from W where 日付 = #2003/10/15# group by 名称 ) group by 名称; このSQL文は、2番目のSelectのところでエラーが出る (From句の構文エラーです) -------------------------------------------------- 後、Accessバージョンによって、SQL文が変わるでしょうか?当方は、Access97を使っている。 ご指導をお願いいたします。

  • 並替にてSQL文を優先させたい

    テーブル1には 番号フィールド 001 002 003 が入力されています。 選択クエリで SELECT テーブル1.番号 FROM テーブル1 ORDER BY テーブル1.番号; というSQL文でクエリ1を作成しました。 クエリ1を開くと 番号 001 002 003 となります。 ここでクエリ1をダブルクリックで開き、 右クリック→降順で並替をすると 003 002 001 に並び変わります。 このまま保存し、再度クエリ1を開くと降順のままです。 SQL文の並び替え順は無視されるのでしょうか?

  • PHP+mysqlでSQL文に文字数制限はありますか?

    基本的な質問で申し訳ありません。 $sql="......";にSQL文を書き $rst = mysql_query($sql,$con); $col = mysql_fetch_array($rst); として($conはmysql_connect関数の結果です) WEBを作成しているのですが、ある程度以上長いSQL文を書くと正常に作動しません。(短いSQLであれば正常に差作動します。)  当然SQL文自体もmysqlで直接実行すると作動するものです。SQL文自体がUNIONや副問い合わせを多用し250行程度になってしまったためかと考えていますが、文字数制限等があるのでしょうか?PHPには変数宣言が無いと認識しているのでどう対処して良いかわかりません。 SQLを分解できないとすると何か良い方法はありますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Access2003 集合クエリ(SQL文の書き方)

    Access2003 集合クエリ(SQL文の書き方) 下記のようなデータがあります 価格  数量 480   1 1000 2 1100 3 2500 1 3300 2 2800 1 これを下記のように各価帯に数量合計をまとめいたいのですが 499円以下   1 500~999円  0 1001~1999円 5 2001~2999円 2 3001~3999円 2 このような値を求めるSQL文はかけるのでしょうか?

  • ACCESS 追加クエリでレコード数の指定したい

    Win XP Access2003 見積伝票を作成しております。サブフォーム(帳票フォーム)の登録方法でご教授お願い致します。 "伝票明細テーブルW"(伝票番号,行番号,内容、数量、単価、・・・)を基にした "伝票明細クエリW"を作成し、入力しやすいようにフォームを開いた時に行番号(連番)を振り、30行表示するようになっています。 入力確認後に登録ボタンをクリックして追加クエリを開き"伝票明細テーブルW"から"伝票明細テーブル"に30件レコード保存するようになっているのですが、 場合によって内容が2~3行で終わる時があります。 このような時に無駄に30行のレコードを保存せず"内容"(フィールド)が入力されているの最終レコードまでで伝票明細テーブルに追加したいのですが、よい方法がありましたら宜しくお願い致します。 "内容"(フィールド)は途中に空白の時があります。 行番号    内容        数量  1     オイル交換      3.0  2  3     タイヤ交換       4.0

  • AccessのSQLビューで書式を設定したい

    いつもお世話になっております。 AccessのSQLビューでユニオンクエリを作成しています。 このとき数字の書式を数値型から標準型に変更したい(3桁ごとに区切り点を表示させたくない)のですが、どのようにしたらよいのでしょうか? ちなみに元のテーブルは区切り点のない書式ですが、ユニオンクエリを作成して表示すると区切り点が入ってしまいします。 よろしくお願いします。