我为这个问题苦苦挣扎了几天,但我不知道如何解决它。
我想group by
我的价值观表1
,2
,3
,4
,5
所以我创建了一个临时表与这个价值观。
现在我必须INNER JOIN
这张桌子和其他桌子上a.value = #myTempTable.num
.
BUT a.value
is ntext
所以我需要CONVERT
这就是我实际所做的,但我收到错误:
将 varchar 值“simple,”转换为 data 时转换失败
类型 int。 (7号线)
Create table #myTempTable
(
num int
)
insert into #myTempTable (num) values (1),(2),(3),(4),(5)
SELECT a.name, CONVERT(INT, CONVERT(VARCHAR(12), a.value)) AS value, COUNT(*) AS pocet
FROM
(SELECT item.name, value.value
FROM mdl_feedback AS feedback
INNER JOIN mdl_feedback_item AS item
ON feedback.id = item.feedback
INNER JOIN mdl_feedback_value AS value
ON item.id = value.item
WHERE item.typ = 'multichoicerated' AND item.feedback IN (43)
) AS a
INNER JOIN #myTempTable
on CONVERT(INT, CONVERT(VARCHAR(12), a.value)) = #myTempTable.num
GROUP BY a.name, CONVERT(INT, CONVERT(VARCHAR(12), a.value)) ORDER BY a.name
drop table #myTempTable
如果没有最后一个,我就不会收到此错误INNER JOIN
INNER JOIN #myTempTable on CONVERT(INT, CONVERT(VARCHAR(12), a.value))
= #myTempTable.num
有人可以帮我吗?
Thanks.