Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Access 2010)
最低価格の仕入れ先の抽出方法
投稿日時: 17/05/29 13:29:35
投稿者: maruho

品目番号に対して単価の安い仕入れ先とその単価を抽出したいのですが、うまくいきません。
ご教授お願いできないでしょうか。
 
T単価マスター
品目番号 仕入れ先 単価
A1 AAA 10
A1 BBB 20
A1 CCC 30
B1 BBB 80
B1 CCC 50
B1 AAA 70
C1 FFF 100
C1 GGG 50
 
抽出したい結果
A1 AAA 10
B1 CCC 50
C1 GGG 50
 
よろしくお願いします。

回答
投稿日時: 17/05/29 13:50:51
投稿者: sk

引用:
品目番号に対して単価の安い仕入れ先とその単価を抽出

( SQL ビュー)
--------------------------------------------------------------------
SELECT [T単価マスター].[品目番号],
       [T単価マスター].[仕入れ先],
       [T単価マスター].[単価]
FROM [T単価マスター]
WHERE NOT EXISTS (SELECT tmp.*
                  FROM [T単価マスター] tmp
                  WHERE tmp.[品目番号] = [T単価マスター].[品目番号]
                    AND tmp.[単価] < [T単価マスター].[単価])
ORDER BY [T単価マスター].[品目番号];
--------------------------------------------------------------------
 
以上のような選択クエリを作成なさればよろしいかと。

回答
投稿日時: 17/05/29 14:02:08
投稿者: AccessKid

SELECT 品目番号,
       仕入れ先,
       単価
  FROM T単価マスター1
 WHERE 単価 = DMin("単価","Tタンカマスター","品目番号='" & 品目番号 & "'")
 
では?

回答
投稿日時: 17/05/29 14:05:01
投稿者: AccessKid

AccessKid さんの引用:
SELECT 品目番号,
       仕入れ先,
       単価
  FROM T単価マスター1
 WHERE 単価 = DMin("単価","Tタンカマスター","品目番号='" & 品目番号 & "'")
 
では?

テーブル名を間違いました。
 
SELECT 品目番号,
       仕入れ先,
       単価
  FROM T単価マスター
 WHERE 単価 = DMin("単価","T単価マスター","品目番号='" & 品目番号 & "'")

投稿日時: 17/05/30 06:48:23
投稿者: maruho

早速の回答誠にありがとうございます。
どちらもSQLに貼り付けて結果を確認できました。
 
追加で誠に申し訳ありませんが、T単価マスターに [無効] があり、 無 となっているレコードは対象外にしたいのですがご教授いただけないでしょうか。
 
よろしくお願いします。
 
T単価マスター
品目番号 仕入れ先 単価 無効
A1 AAA 10
A1 BBB 20
A1 CCC 30
A1 DDD 5 無
B1 BBB 80
B1 CCC 50
B1 WWW 100 無
B1 AAA 70
C1 FFF 100
C1 GGG 50
D1 WWW 500 無
 
抽出したい結果
A1 AAA 10
 B1 CCC 50
 C1 GGG 50

回答
投稿日時: 17/05/30 09:11:00
投稿者: sk

引用:
T単価マスターに [無効] があり、 無 となっているレコードは対象外にしたい

( SQL ビュー)
--------------------------------------------------------------------------------
SELECT [T単価マスター].[品目番号],
       [T単価マスター].[仕入れ先],
       [T単価マスター].[単価]
FROM [T単価マスター]
WHERE [T単価マスター].[単価] = (SELECT Min(tmp.[単価])
                                FROM [T単価マスター] tmp
                                WHERE tmp.[品目番号] = [T単価マスター].[品目番号]
                                  AND tmp.[無効] Is Null)
ORDER BY [T単価マスター].[品目番号];
--------------------------------------------------------------------------------
 
サブクエリではなく DMin 関数を用いる場合も、
同様に[無効]に対する AND 条件を追加なさればよろしいでしょう。

投稿日時: 17/05/30 13:05:47
投稿者: maruho

早速の回答誠にありがとうございます。
SQLに貼り付けて結果を確認できました。
 
ありがとうございました。