我有两个表User
,并UserRoles
在SQL Server中.User
table有基本的用户信息,例如UserId,Name
etc,并且UserRoles
有像这样的列UserId,RoleName
.这两个表之间存在一对多的关系,即一个用户可以拥有多个角色.
用户
UserId Name
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
的UserRole
UserId Rolename
1 Manager
1 Event Organiser
2 Supervisor
2 Employee
2 Some otherRole
Run Code Online (Sandbox Code Playgroud)
我需要在sql中编写一个查询,它将返回如下.即将一个到多个记录连接成一个字符串
UserId Roles
1 Manager,Event Organiser
2 Supervisor,Employee,Some otherRole
Run Code Online (Sandbox Code Playgroud) select table1.t1 from
(
(
select
ItemCategory.Name as Category,
InventoryItems.Name as ItemName,
sum(SalesItems.Quantity) as Quantity,
(InventoryItems.Weight*sum(SalesItems.Quantity)) as Weight,
sum(SalesItems.Amount) as Amount
from SalesInvoices
inner join Sales on Sales.ID = SalesInvoices.SalesID
inner join SalesItems on SalesItems.SalesID = Sales.ID
inner join InventoryItems on InventoryItems.ID = SalesItems.InventoryItemID
inner join ItemCategory on ItemCategory.ID = InventoryItems.ItemCategoryID
inner join BusinessPartners on Sales.BusinessPartnerID = BusinessPartners.ID
where SalesInvoices.Date >= '2013-07-1' and SalesInvoices.Date <= '2013-11-7'
group by ItemCategory.Name,InventoryItems.Name,InventoryItems.Weight
) as t1,
(
select
ItemCategory.Name as Category,
InventoryItems.Name as ItemName, …
Run Code Online (Sandbox Code Playgroud) (我已经查过了,找不到答案,如果这是重复的,只需指出一个链接,我将删除此问题)
假设我有以下代码
select CASE WHEN lower(Http_User_Agent) like '%mobi%' then 'Mobile'
else 'Desktop' end as Device
from Http_User_Agent
where Device = 'Mobile'
Run Code Online (Sandbox Code Playgroud)
哪个返回
Msg 207, Level 16, State 1, Line 4
Invalid column name 'Device'.
Run Code Online (Sandbox Code Playgroud)
我基本上要做的是按新创建的 column 进行过滤Device
。有没有简单的方法?
我在 Windows 7 上使用 SQL Server 2008