0
以下SQL回报只是根据需要,除了当没有返回数据格式正确的数据。SQL Server 2008中聚结
期望的结果 - 使用上ename-- 聚结是没有返回数据时返回“无”。
它是什么,我就聚结做错了什么?为什么没有数据返回时它不返回'无'?
当返回的数据,我们得到了所有的列名,并全部为空。
所有指针和建议表示赞赏。
select
ltrim(right(convert(varchar(20), tstart, 100), 7))
as 'START TIME',
ltrim(right(convert(varchar(20), tend, 100), 7))
as 'END TIME',
coalesce(vb.tname, 'none') as TITLE,
tr.description as LOCATION
from vwbooks vb
join troom tr
on vb.room = tr.id
where vb.room in(select id
from tblroom
where building = 4971
and vb.tstart >= floor(cast(getdate() as float))
and vb.tstart < ceiling(cast(getdate() as float))
and datepart(hour, vb.tstart) between 6 and 18
也许'vb.tname'永远不能为null,当你的数据吗?也许你打算做一个'left join'来取代vwbooks的所有数据,即使在troom里没有匹配的数据?没有看到一些样本输入数据以及实际和预期的结果,很难说什么可能是错误的。 – jpw
@jpw是对的,你返回0行。你正在将它们解释为null。你需要明白为什么没有返回。 P,当它连续时,聚结将起作用! – Mike
现货上。谢谢。 – user761758