私はあなたが話していることを知っていると思います。内部結合によって一部の行操作が取り除かれているインスタンスがある場合は、それらを左結合に変更して、常に行の値を TSQL に含めることができます。これがあなたが言及しているものであることを願っています。これは、マトリックス環境で注文のない人がいた問題をどのように処理するかの簡単な例です.
declare @Person Table ( personID int identity, person varchar(8));
insert into @Person values ('Brett'),('Sean'),('Chad'),('Michael');
declare @Orders table ( OrderID int identity, PersonID int, Desciption varchar(32), Amount int);
insert into @Orders values (1, 'Shirt', 20),(2, 'Shirt', 22),(3, 'Shirt', 20);
Select
person
, OrderID
, Desciption
, Amount
from @Person p
join @Orders o on p.personID = o.PersonID
-- versus showing the person with no orders in a matrix environment where
-- the 'Person' should be shown on the row
Select
person
, isnull(OrderID, '') as OrderID
, isnull(Desciption, 'N/A') as Description
, isnull(Amount, '0') as Amount
from @Person p
left join @Orders o on p.personID = o.PersonID
編集:
行の繰り返しを説明している場合、その行が何かの親グループに含まれないようにするだけです。グループヘッダーをすべての行で繰り返したい場合、それはもはやグループ化ではありません。「行グループ」からグループ化を削除し、代わりにその列名を項目の詳細に入れます。
- 「デザイン」(中央のデザイン領域の上の小さなタブ)にいるVSでは、「行グループ」の下の左下に移動します
- 「=(詳細)」の上にあるグループをクリックします。一般に、それはグループ化している列の名前です。
- 右クリック > 削除
- 「グループの削除」というプロンプトが表示され、2 つの選択肢があります。
- 「グループのみ削除」を選択
- これにより、グループ化ロジック (不要と思われる) が削除され、列が保持されます。データセットによっては、データをすべての行で繰り返す必要があります。