「一気に最後まで読んだ」本、教えて下さい!

現在 テーブル"ta製造確認書"にフィールド[ID],[製品名],[金型名],[得意先名] テーブル"ta金型名"にフィールド[No],[金型名],[部品名] テーブル "ta得意先名"にフィールド[得意先コード],[得意先別注意事項]を設定しています。
現状は"ta製造確認書"の[製品名],[金型名],[得意先名]を親に使って、サブフォーム"ta金型名"子フィールド[金型名] サブフォーム"ta得意先名"子フィールド[得意先名]を設定しレポート印刷しています。
これにテーブル"ta原価表" にフィールド[ID],[日付],[製品名],[不良率]の[製品名]を子フィールドとして、過去の不良実績として[不良率]を加えたいのですが、すべて表示されてしまいます(20件あれば20件表示される)。これを日付の新しい3件のみの表示にさせたいのですが、その手法がわかりません。
どなたかご教授頂けないでしょうか。

A 回答 (4件)

>日付の新しい新しい3件のみ


SQL初心者ですがそれぐらいならわかるので
おおざっぱに書けば
SELECT TOP (3)   //最初の3件のみを対象
// 今自分で書いているSQLのフォーマット指定
ORDER BY [日付] DESC //日付で降順ソート


SELECT * FROM [データベース名]  -> データベースの全フィールドの全データ
SELECT TOP (3) * FROM [データベース名]  -> データベースの全フィールドの先頭3件分のデータ
SELECT TOP (3) * FROM [データベース名] ORDER BY [フィールド名] [ソート順]
      -> データベースの全データを指定フィールドでソート順に従ってソートしたうえで
         先頭から3件のみ
    • good
    • 0
この回答へのお礼

koi1234 さん。
色々と試していて、ご連絡が遅くなりました。

SELECT TOP 3 ta実質原価表.[No], ta実質原価表.日付, ta実質原価表.製品名, ta実質原価表.不良率
FROM ta実質原価表
ORDER BY ta実質原価表.日付 DESC;

だと、3件分のデータしか表示されなくなります。
サブフォームに[製品名]をリンクフィールドとしてをレポートで表示させたいのですが、他の方法はあるのでしょうか。
(リンクフィールド[製品名]と同じ品名の過去の原価表の実績を3件抽出したい)

よろしくお願いいたします。

お礼日時:2015/09/09 10:07

>これを日付の新しい3件のみの表示にさせたいのですが、その手法がわかりません


ORDER BYは同じだけど取得件数の処理ってこれ使うDBによって完全に書くSQLががらっと変わる。
    • good
    • 0
この回答へのお礼

kuroro_kuro さん。ありがとうございます。
DBはaccess2010です。
宜しくお願いします。

お礼日時:2015/09/09 09:48

accessなら取得件数制御はTOP。


もしくはVBAで制御
    • good
    • 0
この回答へのお礼

何度もご連絡が遅くなり申し訳ありません。
現在この様に記載しているのですが、3件分のデータしか表示されず、
製品名を親リンクフィールドで抽出しても、3件の内でしか表示されません。
引き続きお願い出来ませんでしょうか。

SELECT TOP 3 ta実質原価表.[No], ta実質原価表.日付, ta実質原価表.製品名, ta実質原価表.不良率
FROM ta実質原価表
ORDER BY ta実質原価表.日付 DESC;

お礼日時:2015/09/11 11:41

不良率を加えることについては


各テーブル・フィールドの相互の関連性が分かりませんので今回はゴメン。
サンプルデータを提示してもらい且つ説明が必要な気がします。

最新の3件の表示は
いまはメイン/サブフォームがリンクされていると思いますのでこれを切ります。
リンク親フィールドとリンク子フィールドを空欄に。

サブフォームのプロパティを表示し
データタブのレコードソース欄に
select top 3 * from ※1 where ※2= forms!親フォーム名!※3 order by 日付 desc
とすれば出来るのでは。
※1 旧サブフォームのレコードソース欄にあったもの
※2 旧フォームで親子のリンクに使用していたフィールド名
※3 同上

質問が視覚的に分かりにくいです (^_^;)
テーブル"ta製造確認書"
フィールド[ID],[製品名],[金型名],[得意先名]

テーブル"ta金型名"
フィールド[No],[金型名],[部品名]

テーブル "ta得意先名"
フィールド[得意先コード],[得意先別注意事項]を設定しています。
・・・
みたいな感じに適宜改行を入れてもらえるとすっきり把握しやすいです(私の場合)

PS.
レポート印刷の事は全く考えていませんでした。。。
    • good
    • 0
この回答へのお礼

nicotinismさん。ご連絡が遅くなり申し訳ございませんでした。
何とか頂いたアドバイスにて、自己解決できました。
ご協力感謝いたします。

お礼日時:2015/09/17 07:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報