私はピボット関数を使いこなしていましたが、私はそれが私が望むことをしているのか分かりません。私は、ストレージチケットが複数の要因と値を持つ親子関係を持っています。私は結果の数をあらかじめ定義された数に制限するのがとても嬉しいです。私はこの質問のために2つ一緒に行きます。SQL Serverの行数、行数の制限
ここでは、より簡単な結果セットを示します。そこFactorId
の可能性が多数あると、私は特定の各FactorId
にちなんで名付けられた列の作成に興味がないので
StorageTicketID FactorID FactorValue
---------------------------------------
23 116 90
23 210 13.2
私は考えていないピボットが動作します。
これは私が思いついたものです。それは動作しますが、私はより良い方法があることを望んでいます!ここで
select
StorageTicketID,
ROW_NUMBER() over (order by StorageTicketID) rownumber,
glfr.FactorID, glfr.FactorValue
into
#temp1
from
pgf_master.dbo.StorageTicket st
join
PGF_Master.dbo.GrainLoadFactorResult glfr on glfr.ParentID = st.StorageTicketID
and StorageTicketID = 23
and glfr.ParentTypeId = 2
select
max(StorageTicketID) ID,
(select factorid from #temp1
where rownumber = 1) F1,
(select factorvalue from #temp1
where rownumber = 1) V1,
(select factorid from #temp1
where rownumber = 2) F2,
(select factorvalue from #temp1
where rownumber = 2) V2
from
#temp1
group by
StorageTicketI
が出力されます。
ID F1 V1 F2 V2
--------------------
23 116 90 210 13.2
サンプル結果が表示されたサンプルデータを表示できますか? –