我正在使用SQL 2008计算机,但似乎无法使查询正常工作 我的SQL查询是:
select q.Document DOC from references q, equiprates e where e.MachineID=q.UnitID'
q.Document重新创建的行是:
5570_RESTAURANT.pdf
5650_RESTAURANT.pdf
5110_RESTAURANT.pdf
但是,我需要表行如下:
餐厅文件
<a href="Javascript:ViewPDFDoc('5570_RESTAURANT.pdf')" class="Link">5570_RESTAURANT.pdf</a>
<a href="Javascript:ViewPDFDoc('5650_RESTAURANT.pdf')" class="Link">5570_RESTAURANT.pdf</a>
<a href="Javascript:ViewPDFDoc('5110_RESTAURANT.pdf')" class="Link">5570_RESTAURANT.pdf</a>
所以我试着按如下方式格式化我的选择字符串:
Select @sSQL = 'select q.Document DOC, ''<a href="Javascript:ViewFile('''''+q.Document+''''''')" class="Link">''+q.Document+''</a>'' ''Restaurant Document'',
from references q, equiprates e
where e.MachineID=q.UnitID'
我的错误信息是:
Msg 4104,Level 16,State 1,Line 3
无法绑定多部分标识符“q.Document”。
有任何想法如何解决这个问题? 我试过谷歌,但没有运气。
答案 0 :(得分:2)
您的单引号是错误的(我还建议转换为更现代的INNER JOIN语法)。但为什么应用程序不能简单地在DOC列周围添加HTML?似乎浪费(显然更复杂)在服务器上添加所有HTML,并通过网络发送所有这些字节。
DECLARE @sSQL NVARCHAR(MAX);
SET @sSQL = N'SELECT
DOC = q.Document,
[Restaurant Document] = ''<a href="Javascript:ViewFile(''''''
+ q.Document + '''''');" class="Link">''
+ q.Document + ''</a>''
FROM references AS q
INNER JOIN equiprates AS e
ON q.UnitID = e.MachineID';
PRINT @sSQL;
答案 1 :(得分:1)
尝试
select
'<a href="Javascript:ViewPDFDoc(''' + q.Document + ''')" class="Link">' + q.Document + '</a>'
from
references q, equiprates e
where
e.MachineID=q.UnitID
但请记住,这是非常糟糕的编程风格。当数据模型和数据视图彼此分离时,它会更好