问题:锚点与列SQL Server 2005中的递归部分之间的类型不匹配

汤玛士

我的表结构如下

ID   JID     EntryDate   RefundDate Comments     Refund ActionBy
---- ------- ----------- ---------- ------------ ------ --------
3    41986   2013-12-17  12/24/2013 Cancel       0      Matt
4    41986   2013-12-17  12/25/2013 done         1      Kelly
5    41986   2013-12-17  12/24/2013 no           0      Smith

我希望在发出sql后获得这种类型的输出

JID     EntryDate   RefundDate Comments     Refund ActionBy
------- ----------- ---------- ------------ ------ ---------
 41986
     2013-12-17  12/24/2013 Cancel       0      Matt
     2013-12-17  12/25/2013 done         1      Kelly
     2013-12-17  12/24/2013 no           0      Smith

 41987
     2013-12-17  12/24/2013 Cancel       0      Mosa
     2013-12-17  12/25/2013 done         1      Mike
     2013-12-17  12/24/2013 no           0      Jen


 41988
     2013-12-17  12/24/2013 Cancel       0      Ruby
     2013-12-17  12/25/2013 done         1      Kelly
     2013-12-17  12/24/2013 no           0      Simon

只是为了得到上面的输出,我如下发出了这个sql

;WITH  Hierarchy AS
(
    --  Anchor
    SELECT TOP 1  JID
            ,NULL EntryDate
            ,NULL RefundDate
            ,NULL Comments
            ,NULL Refund
            ,NULL ActionBy
            ,nLevel = 1
    FROM refundrequested

    UNION ALL
    --  Recursive query
    SELECT   E.JID
            ,E.EntryDate
            ,E.RefundDate
            ,E.Comments
            ,E.Refund
            ,E.ActionBy
            ,H.nLevel+1

    FROM refundrequested   E
    JOIN Hierarchy  H ON E.JID = H.JID
)

SELECT *
FROM Hierarchy

ORDER BY JID, nLevel

更新

;WITH  Hierarchy AS
(
    SELECT DISTINCT  JID
            ,CAST(NULL AS DATETIME) EntryDate
            ,CAST(NULL AS DATETIME) RefundDate
            ,CAST(NULL AS VARCHAR(MAX)) Comments
            ,CAST(NULL AS BIT) Refund
            ,CAST(NULL AS VARCHAR(30)) ActionBy
            ,nLevel = 1
    FROM refundrequested
    UNION ALL
    SELECT   CAST(NULL AS INT) JID
            ,E.EntryDate
            ,E.RefundDate
            ,E.Comments
            ,E.Refund
            ,E.ActionBy
            ,H.nLevel+1

    FROM refundrequested   E
    JOIN Hierarchy  H ON E.JID = H.JID
)

SELECT *
FROM Hierarchy
ORDER BY JID DESC, nLevel

现在得到此错误语句终止。在语句完成之前,最大递归100已用尽。

如何解决上述错误以及错误的含义是什么?...不清楚。

赌博严酷

解释你的输出。我没有得到nlevel的一部分。什么决定nlevel以及能持续多久?

;WITH  Hierarchy AS
(
    --  Anchor
    SELECT TOP 1  JID
            ,cast(NULL as date) EntryDate
            ,cast(NULL as date) RefundDate
            ,cast(NULL as varchar(10)) Comments
            ,cast(NULL as bit) Refund
            ,cast(NULL as varchar(10)) ActionBy
            ,nLevel = 1
    FROM @t

    UNION ALL
    --  Recursive query
    SELECT   E.JID
            ,E.EntryDate
            ,E.RefundDate
            ,E.Comments
            ,E.Refund
            ,E.ActionBy
            ,H.nLevel+1

    FROM @t   E
    JOIN Hierarchy  H ON E.JID = H.JID where h.nLevel<=3
)

select * from Hierarchy

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归查询列中的锚点和递归部分之间的类型不匹配

来自分类Dev

递归查询“ CTE”的列“ ProductNames”中的锚点与递归部分之间的类型不匹配

来自分类Dev

SQL Server:带日期的递归CTE-类型不匹配

来自分类Dev

cte递归错误在锚点之间不匹配

来自分类Dev

SQL Server查询与varbinary类型的列不匹配

来自分类Dev

执行递归SQL查询(SQL Server 2005)

来自分类Dev

强制转换后,“锚和递归零件之间的类型不匹配”

来自分类Dev

C#和SQL Server之间的DateTime不匹配

来自分类Dev

SQL Server中的串联问题

来自分类Dev

SQL Server中的DateTime问题

来自分类Dev

SQL Server中的IN条件问题

来自分类Dev

SQL Server中的串联问题

来自分类Dev

SQL Server中的投放问题

来自分类Dev

C# SQL Server 命令数据类型不匹配

来自分类Dev

SQL Server 中的递归清理列

来自分类Dev

使用位数据类型列查询Sql Server 2005

来自分类Dev

使用位数据类型列查询Sql Server 2005

来自分类Dev

SQL Server 2005存储过程错误-行号与Management Studio不匹配

来自分类Dev

SQL Server中几何点的重心或重心

来自分类Dev

从SQL Server 2005中的列中获取查询的xml节点

来自分类Dev

转换列类型 SQL Server

来自分类Dev

SQL Server 2008中的递归

来自分类Dev

数据类型匹配(Excel列X Sql Server列)

来自分类Dev

加密SQL Server 2005

来自分类Dev

SQL Server:在子句的AND部分中不评估参数

来自分类Dev

SQL Server 2005中的动态PIVOT

来自分类Dev

SQL Server 2005中的交叉联接值

来自分类Dev

在SQL Server 2005中检索层次结构

来自分类Dev

SQL Server中的递归不更新递归过程中的行