22
人のID番号をとり、いくつかの行と列を返すテーブル値関数があります。別のクエリでは、多くの人に関する多くの情報を取得するSELECTを作成しています。どのように私のメインのクエリから私の関数に列を合計し、私のメインクエリに参加するID番号を渡すことができますか?テーブル値関数を持っていなかったのは簡単だが、この関数は他の場所で使用されていて再利用したいと思う。おそらく、これはテーブル値関数でも可能ではなく、スカラー値を作成する必要があります。テーブル値関数とMSSQLクエリの結合
私の主なクエリは次のようになります。
select id_num, name, balance
from listOfPeople
とテーブル値関数は次のようになります。
select id_num, name, balance
from listOfPeople
left join
(
SELECT id_num, SUM(discount)
FROM calculatePersonalDiscount(listOfPeople.id_num)
) x ON x.id_num = listOfPeople.id_num
:
calculatePersonalDiscount(id_number)
私のような何かをしたいと思いますしかし、実際には同じスコープではないので、関数にlistOfPeople.id_numを渡すことはできません。 LEFT OUTER結合の同等のため
がselect id_num, name, balance, SUM(x.discount)
from listOfPeople
cross apply dbo.calculatePersonalDiscount(listOfPeople.id_num) x
同様OUTERが適用されています構文:
これはSQL Server 2008と2012でも動作しますが、私はそれが「去っていく」ことは想像できません。私は文法を忘れてしまったので、私はGoogleに持っていた特定の質問に素敵な簡潔な答えを+1しました! – NateJ
働いています。ありがとうございます –