我们正在尝试替换列中某些项的输出以缩短它们(即信息会话到信息会话)。使用我们当前的SQL,替换函数似乎不允许该语句在我们的环境中运行。承认,我是使用替换功能的新手,并不确定它是否以正确的方式使用。请指教!
select [Date], [Time], [Event], [Students], [Guests]
from (
select
e.[id],
format(e.[date], 'h:mm tt') as [Time],
e.[date],
replace('Information Session','Information','Info') e.[summary] as [Event],
(
select count(*)
from [event.registration]
where [event] = e.[id] and [cancelled] is null
) as [Students],
(
select sum([guests])
from [event.registration]
where [event] = e.[id] and [cancelled] is null
) as [Guests]
from [event] e
where e.[category]
in ('Campus Visit', 'Information Session', 'Campus Tour', 'Athletics and Wellness Tour') and format(e.[date], 'MM/dd/yyyy') = format(getdate(), 'MM/dd/yyyy')
) base
order by [Time] asc
答案 0 :(得分:0)
整个查询对我来说有点奇怪。对于你回来的ewach行,你会向注册表,count(*)和sum(guest)做2个额外的查询。
这可能不是问题,但对于大表,您会遇到性能问题和可能的表锁。
我建议整理一下:
cmdS.Parameters.Clear();
我还将您的WHERE格式(例如[日期],' MM / dd / yyyy')替换为日期,以减少查询中的操作。
可能存在一些错误,但由于我无法访问您的表定义,因此很难进行测试。