0

我有一个查询:

declare @colors table (color varchar(50));
declare @T table(RowNo int, LocationID bigint, TotalSales money, DBAName varchar(50), Color varchar(50));

insert into @colors
select distinct Color
from dbx.dbo.SampleData;

select top 5 *
from @colors
order by newid()

insert into @T
select (row_number() over (order by LocationID)) as RowNo,
        LocationID, sum(TransAmount) as TotalSales, DBAName, Color
from dbx.dbo.SampleData
group by LocationID, DBAName, Color

select * from (
  select LocationID, TotalSales, DBAName
  from @T
) x
group by LocationID, TotalSales, DBAName

有以下结果:

结果

我想知道如何RIGHT JOIN(或任何其他更好的解决方案) ,@colors以便@T每一行都有一个独特的颜色值,如下所示:

我想要的是

我很感激任何帮助。谢谢!

4

1 回答 1

0

您需要在两个表中有一些共同的列来连接它们。例如,您可以在 Colors 表中添加一个名为 LocationId 的列,并为每个 locationId 分配唯一的颜色。然后查询将是:

Select T.LocationID, T.TotalSales, T.DBAName,C.Color
From @T t join @Colors C on T.LocationId=C.LocationId
于 2013-08-16T16:35:35.580 回答