2013-08-16 78 views
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 

它拥有以下结果:

Results

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

What I want

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

+2

行应该有什么颜色?我们如何为每一行选择正确的颜色? – Lamak

+0

颜色在查询中拉出。检查图片。我创建了两个表格。一个有颜色值,另一个有数据。 –

+1

是的,我现在可以检查它,你编辑你的问题与新图片,包括该信息 – Lamak

回答

0

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

Select T.LocationID, T.TotalSales, T.DBAName,C.Color 
From @T t join @Colors C on T.LocationId=C.LocationId