我想我知道你在说什么。如果您有内部联接摆脱某些行操作的实例,您可以将它们更改为左联接并始终在 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 中,当您处于“设计”时(中央设计区域上方的小标签)移动到“行组”下的左下角
- 单击“=(详细信息)”上方的分组。通常它是您正在摸索的列的名称。
- 右键单击>删除
- 系统会提示您“删除组”,有两个选择。
- 选择“仅删除组”
- 这应该删除分组逻辑(您似乎不想要)并保留该列。根据您的数据集,您现在应该让数据每行重复一次。