これはSQLの専門家にとっての質問です!2段ループT-SQL SELECTクエリはどのようにフレーズしますか?
私はSQL Server 2008 R2 Expressを使用しています。
[myTable]
という名前のテーブルが2種類のレコードで構成されています。
第1のタイプのレコードはマスターレコードであり、第2のタイプは[Relative]
レコードです。
各マスタレコードには、複数の関連レコードが含まれている場合があります。
私はしSLELECT TOP 10 * FROM [myTable]
マスタレコード、およびそれぞれのSELECT TOP 4
[Relative]
の記録のような労働組合のサブレコードをしたいと思います。
各レコードには[PKID] NO NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED
の列があります。私は私の目標を達成するために、クエリを修正する必要がありますどのように
SELECT TOP 10 * FROM [myTable] WHERE [Relative]=0
UNION
For each (SELECT TOP 10 [PKID] as Master, * FROM [myTable] WHERE [Relative]=0)
{SELECT TOP 4 * FROM [myTable] WHERE [Relative] = Master}
:
私はそのような何かが必要だと思いますか?コラム[IsImportant]
で説明したよう
相対レコードは2種類があります:
は、私はそれのためのシンプルなソリューションがあります疑う二疑問を持っています。
マスターレコードごとに重要な相対レコードが1つだけ選択されるようにする方法はありますか?
1つしか重要ではないが相対レコードが4つ未満の場合、マスターレコードをスキップする方法はありますか?
あなたは長い間、あなたが出力になりたいと思い何をして、いくつかのサンプルの入力データが含まれてもらえますか?あなたの最後の変更は私を少し混乱させました。 – MatBailie