Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要帮助为每个记录调用存储过程吗_Sql_Sql Server_Dynamics Crm 2011 - Fatal编程技术网

Sql 需要帮助为每个记录调用存储过程吗

Sql 需要帮助为每个记录调用存储过程吗,sql,sql-server,dynamics-crm-2011,Sql,Sql Server,Dynamics Crm 2011,我一直很难将嵌套的select语句转换为存储过程。我现在拥有的是,我可以获得每个记录所需的值,但我不知道如何使查询针对所有记录而不是一个记录运行。这是我的 SELECT TICKETNUMBER, [TABLE].[END DATE] FROM ( SELECT TOP 1 BR.TicketNumber, RM.SMDC_EXECUTIONNO, RM.SMDC_DATEAPPROVED as [END DATE] FROM INCIDENT BR

我一直很难将嵌套的select语句转换为存储过程。我现在拥有的是,我可以获得每个记录所需的值,但我不知道如何使查询针对所有记录而不是一个记录运行。这是我的

SELECT
TICKETNUMBER, [TABLE].[END DATE]

FROM

(   
SELECT TOP 1
    BR.TicketNumber,
    RM.SMDC_EXECUTIONNO,
    RM.SMDC_DATEAPPROVED as [END DATE]  
FROM
    INCIDENT BR JOIN BUYERREQUEST RM ON BR.INCIDENTID = RM.BUYERREQUESTID
WHERE
    RM.STATUSCODE = 5 OR RM.STATUSCODE = 6 OR RM.STATUSCODE = 100000000 AND BR.TICKETNUMBER = '2014-001155'
ORDER BY RM.executionno DESC

) AS [TABLE]

如您所见,我可以为一条记录(票号2014-001155,样本记录)获取所需的票号和结束日期,但我需要为所有8000条记录执行此操作。我希望那里的人能指导我。

您提供的示例代码不是一个存储过程,如果您的目标是为everyrecord运行它,那么您可能应该研究函数

但您可以使用OUTER APPLY对SourceTable上的每个票证号运行该查询

select
    Source.TicketNumber,
    TICKETNUMBER, 
    [TABLE].[END DATE]
from mySourceTable Source
OUTER APPLY (
    SELECT
    TICKETNUMBER, [TABLE].[END DATE]

    FROM

    (   
    SELECT TOP 1
        BR.TicketNumber,
        RM.SMDC_EXECUTIONNO,
        RM.SMDC_DATEAPPROVED as [END DATE]  
    FROM
        INCIDENT BR JOIN BUYERREQUEST RM ON BR.INCIDENTID = RM.BUYERREQUESTID
    WHERE
        RM.STATUSCODE = 5 OR RM.STATUSCODE = 6 OR RM.STATUSCODE = 100000000 AND BR.TICKETNUMBER = Source.TicketNumber
    ORDER BY RM.executionno DESC

    ) AS [TABLE]
) T 

我无法确定存储过程将做什么,或者如何从查询中调用它。我也不明白,如果只需要每张票的最新日期,为什么需要嵌套查询。看起来您应该通过一个简单得多的查询获得每个票号所需的信息:

SELECT  BR.TicketNumber, Max( RM.SMDC_DATEAPPROVED ) as [END DATE]  
FROM    INCIDENT     BR
JOIN    BUYERREQUEST RM
    ON  BR.INCIDENTID = RM.BUYERREQUESTID
WHERE   RM.STATUSCODE in( 5, 6, 100000000 )
GROUP BY BR.TicketNumber
ORDER BY BR.TicketNumber;