【发布时间】:2016-08-20 22:37:16
【问题描述】:
我的这段代码有错误,因为我在Nvarchar 中使用了Int 变量。
DECLARE @FattAnnoCorrente INT;
DECLARE @Tabscontianno1 NVARCHAR(MAX);
SET @Tabscontianno1 =
N'<p align="left"><b>ANNO ' + @Anno1 + ' - </b><b>' + @FattAnnoCorrente + '<br>
</b></p>
<table height="62" border="1" cellpadding="2" cellspacing="2"
width="501">
<tbody>
<tr>
<td valign="top">FATTURATO<br>
</td>
<td valign="top">SCONTO<br>
</td>
</tr>' + CAST ((
SELECT
td = SUM(TOTNETTORIGA), '',
td = SCONTIESTESI
FROM .dbo.TESTEDOCUMENTI
INNER JOIN .dbo.RIGHEDOCUMENTI
ON PROGRESSIVO=IDTESTA AND TOTNETTORIGA <>'0'
WHERE CODCLIFOR = @CodiceCliente AND .dbo.TESTEDOCUMENTI.DOCCHIUSO = '0' AND .dbo.TESTEDOCUMENTI.BLOCCATO = '0' AND .dbo.TESTEDOCUMENTI.TIPODOC = 'FVC' AND .dbo.TESTEDOCUMENTI.ESERCIZIO = YEAR(GETDATE())
GROUP BY TESTEDOCUMENTI.ESERCIZIO,SCONTIESTESI
FOR XML PATH('tr'), TYPE )
AS NVARCHAR(MAX) ) +
N' </tbody>
</table>'+
N'<BR/>' ;
我得到这个错误:
将 nvarchar 值“ANNO 2016 - ”转换为数据类型 int 时转换失败。
如果我使用
CAST(CAST(COALESCE(@FattAnnoCorrente) as int) as varchar(255))
我得到了这些错误:
消息 102,第 15 级,状态 1,第 154 行
')' 附近的语法不正确。
消息 156,第 15 级,状态 1,第 173 行
关键字“FOR”附近的语法不正确。
你能帮我解决这个问题吗?
将其插入nvarchar 变量后,我需要将其格式化为金钱:
'€ ' + REPLACE(CONVERT(varchar, CAST(@FattAnnoCorrente AS money), 105),',','.')
谢谢你们!
【问题讨论】:
标签: sql-server-2005 int nvarchar