SQL FUNCTION
を作成しようとしています。ここで "a_id"を入力します。 SQLは3つの異なるc_idに基づいて最小コストを返します。 マイテーブルは以下の通りです。一例として単一SQL関数(SQL Server 2014)の2つのSELECTステートメントに基づいてMINIMUM値を計算
TB1 : A (a_id (pk),a_name,a_description,a_qh)
TB2: AC (ac_id (pk),a_id(fk),c_id(fk),ac_cost)
TB3: C (c_id(pk),c_name)
:I 1のテーブル及びI入力A_ID下回っている場合、次にSQLはそのSQLに基づいて、次に1のA_IDに関連するすべてのC_IDを見つけることができなければならないベースの最小値を計算することができなければなりませんコスト。 A_IDの例を下回る= 1つのSQLは1の私にC_IDを返す必要がありますするために、それは150155のうち150の最低のコストであり、そして以来、160:
文1:2つのSELECT
ステートメントは、これを実現するため、私が作成した
a_id a_description c_id Cost
1 RS 1 150.0000
2 BS 1 145.0000
3 GS 1 130.0000
1 RS 2 155.0000
14 GH 2 120.0000
1 RS 3 160.0000
14 GH 3 125.0000
:
SELECT
c_id, Cost, a_id
FROM
AC
WHERE
a_ID = 1); -- This code returns all c_id associated with one a_id
書2:
SELECT
MIN(AC.cost), c_id, a_ID
FROM
AC
WHERE
a_ID = 1
GROUP BY
c_id, a_ID
HAVING
MIN(AC.COST) <= (SELECT MIN(AC.COST) FROM AC) -- This code calculates minimum cost based on 3 different c_id. AS 1 a_id can be sell be 3 different c_id
私のジレンマです:どのように私は上記の2つのSELECT
ステートメントを単一の機能で最低のac.Costを達成するために使用する必要がありますか?
ありがとうございます!
どのRDBMSを使用していますか、あなたのPRIMARY KEYは何ですか? – Strawberry
@Strawberry ..私はSQL Server 2014を使用しています。私の質問に私のPKを反映するように更新しました – biggboss2019