Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server (按opp_id排序)上的MBER()作为RowNum 来自机遇 加入Opportunity.dept\u id上的部门=departments.dept\u id 加入departments.org\u id=organizations.org\u id_Sql Server_Sql Server 2008_Stored Procedures_Join - Fatal编程技术网

Sql server (按opp_id排序)上的MBER()作为RowNum 来自机遇 加入Opportunity.dept\u id上的部门=departments.dept\u id 加入departments.org\u id=organizations.org\u id

Sql server (按opp_id排序)上的MBER()作为RowNum 来自机遇 加入Opportunity.dept\u id上的部门=departments.dept\u id 加入departments.org\u id=organizations.org\u id,sql-server,sql-server-2008,stored-procedures,join,Sql Server,Sql Server 2008,Stored Procedures,Join,(按opp_id排序)上的MBER()作为RowNum 来自机遇 加入Opportunity.dept\u id上的部门=departments.dept\u id 加入departments.org\u id=organizations.org\u id上的组织 左连接拆分(“,”,@关键字)为kw ON (标题类似“%”+kw.s+“%”或 [说明]如“%”+kw.s+“%”或 “%”+kw.s+“%”或 “%”或“%”等要求 类似“%”+kw.s+“%”的注释) 哪里 ( (@city不为

(按opp_id排序)上的MBER()作为RowNum 来自机遇 加入Opportunity.dept\u id上的部门=departments.dept\u id 加入departments.org\u id=organizations.org\u id上的组织 左连接拆分(“,”,@关键字)为kw ON (标题类似“%”+kw.s+“%”或 [说明]如“%”+kw.s+“%”或 “%”+kw.s+“%”或 “%”或“%”等要求 类似“%”+kw.s+“%”的注释) 哪里 ( (@city不为NULL,并且(类似“%+@Local\u city+%”的城市或类似“%+@Local\u dept\u city+%”的部门城市或类似“%+@Local\u org\u city+%”的组织城市) 或 (@state不为NULL,([state]=@Local\u state或dept\u state=@Local\u dept\u state或org\u state=@Local\u org\u state)) 或 (@zip不为空且(zip=@Local\u-zip或dept\u-zip=@Local\u-dept\u-zip或org\u-zip=@Local\u-org\u-zip)) 或 (@classification不为NULL,并且(类似于“%”+@Local_classification++“%”的分类) 或 (@startDateMin不为空,@Local_startDateMax不为空)和(@Local_startDateMax和@Local_startDateMax之间的[start_date]) 或 (@endDateMin不为NULL,@Local_endDateMax不为NULL)和(@Local_endDateMin和@Local_endDateMax之间的[end_date]) ) ) 挑选* 根据结果 其中RowNum>=@startRowIndex 和RowNum<@startRowIndex+@maximumRows; 结束
您的上一个版本工作正常吗?我不知道在正常工作的版本和这个版本之间发生了什么变化。如果您还没有,我可以建议您开始使用源代码控制吗。@AaronWagner-这个查询需要更多帮助吗?不,我采用了另一种更便宜的方法,并使用了动态生成的SQL(在SQL Server端)。
ALTER PROCEDURE [dbo].[usp_getOppsPaged] 
@startRowIndex int,
@maximumRows int,
@city varchar(100) = NULL,
@state char(2) = NULL,
@zip varchar(10) = NULL,
@classification varchar(15) = NULL,
@startDateMin date = NULL,
@startDateMax date = NULL,
@endDateMin date = NULL,
@endDateMax date = NULL,
@keywords varchar(400) = NULL
AS
BEGIN
SET NOCOUNT ON;

;WITH Results_CTE AS
(
    SELECT opportunities.*,
    organizations.*,
    departments.dept_name,
    departments.dept_address,
    departments.dept_building_name,
    departments.dept_suite_num,
    departments.dept_city,
    departments.dept_state,
    departments.dept_zip,
    departments.dept_international_address,
    departments.dept_phone,
    departments.dept_website,
    departments.dept_gen_list,
    ROW_NUMBER() OVER (ORDER BY opp_id) AS RowNum
    FROM opportunities 
    JOIN departments ON opportunities.dept_id = departments.dept_id 
    JOIN organizations ON departments.org_id=organizations.org_id
    LEFT JOIN Split(',',@keywords) AS kw ON 
        (title LIKE '%'+kw.s+'%' OR
        [description] LIKE '%'+kw.s+'%' OR
        tasks LIKE '%'+kw.s+'%' OR
        requirements LIKE '%'+kw.s+'%' OR
        comments LIKE '%'+kw.s+'%')
    WHERE 
    (
        (@city IS NOT NULL AND (city LIKE '%'+@city+'%' OR dept_city LIKE '%'+@city+'%' OR org_city LIKE '%'+@city+'%'))
        OR
        (@state IS NOT NULL AND ([state] = @state OR dept_state = @state OR org_state = @state))
        OR
        (@zip IS NOT NULL AND (zip = @zip OR dept_zip = @zip OR org_zip = @zip))
        OR
        (@classification IS NOT NULL AND (classification LIKE '%'+@classification+'%'))
        OR
        ((@startDateMin IS NOT NULL AND @startDateMax IS NOT NULL) AND ([start_date] BETWEEN @startDateMin AND @startDateMax))
        OR
        ((@endDateMin IS NOT NULL AND @endDateMax IS NOT NULL) AND ([end_date] BETWEEN @endDateMin AND @endDateMax))

        OR
        (
            (@city IS NULL AND 
            @state IS NULL AND 
            @zip IS NULL AND 
            @classification IS NULL AND 
            @startDateMin IS NULL AND 
            @startDateMax IS NULL AND 
            @endDateMin IS NULL AND 
            @endDateMin IS NULL)
        )
    )
)

SELECT *
FROM Results_CTE
WHERE RowNum >= @startRowIndex
AND RowNum < @startRowIndex + @maximumRows;
END
Set @Local_city = 'city'
Set @Local_dept_city = 'dept_city'
OR
 (
       (@city IS NULL AND 
       @state IS NULL AND 
       @zip IS NULL AND 
       @classification IS NULL AND 
       @startDateMin IS NULL AND 
       @startDateMax IS NULL AND 
       @endDateMin IS NULL AND 
       @endDateMin IS NULL)
ALTER PROCEDURE [dbo].[usp_getOppsPaged] 
@startRowIndex int,
@maximumRows int,
@city varchar(100) = NULL,
@state char(2) = NULL,
@zip varchar(10) = NULL,
@classification varchar(15) = NULL,
@startDateMin date = NULL,
@startDateMax date = NULL,
@endDateMin date = NULL,
@endDateMax date = NULL,
@keywords varchar(400) = NULL
AS
BEGIN
SET NOCOUNT ON;

Declare @Local_city varchar(100)
declare @Local_dept_city varchar(100)
declare @Local_org_city varchar(100)
Declare @Local_state char(2)
Declare @Local_dept_state char(2)
Declare @Local_org_state char(2)
Declare @Local_zip varchar(10)
Declare @Local_dept_zip varchar(10)
Declare @Local_org_zip varchar(10)
Declare @Local_classification varchar(15)
Declare @Local_startDateMin date
Declare @Local_startDateMax date
Declare @Local_endDateMin date
Declare @Local_endDateMin date
Declare @Local_endDateMax date

Set @Local_city = 'city'
Set @Local_dept_city = 'dept_city'
Set @Local_org_city = 'org_city'
Set @Local_state = 'state'
Set @Local_dept_state = 'dept_state'
Set @Local_org_state = 'org_state'
Set @Local_zip = 'zip'
Set @Local_dept_zip = 'dept_zip'
Set @Local_org_zip = 'org_zip'
Set @Local_classification = 'classification'
Set @Local_startDateMax = 'startDateMax'
Set @Local_endDateMin = 'endDateMin'
Set @Local_endDateMin = 'endDateMin'
Set @Local_endDateMax = 'endDateMax'

;WITH Results_CTE AS
(
    SELECT opportunities.*,
    organizations.*,
    departments.dept_name,
    departments.dept_address,
    departments.dept_building_name,
    departments.dept_suite_num,
    departments.dept_city,
    departments.dept_state,
    departments.dept_zip,
    departments.dept_international_address,
    departments.dept_phone,
    departments.dept_website,
    departments.dept_gen_list,
    ROW_NUMBER() OVER (ORDER BY opp_id) AS RowNum
    FROM opportunities 
    JOIN departments ON opportunities.dept_id = departments.dept_id 
    JOIN organizations ON departments.org_id=organizations.org_id
    LEFT JOIN Split(',',@keywords) AS kw ON 
        (title LIKE '%'+kw.s+'%' OR
        [description] LIKE '%'+kw.s+'%' OR
        tasks LIKE '%'+kw.s+'%' OR
        requirements LIKE '%'+kw.s+'%' OR
        comments LIKE '%'+kw.s+'%')
    WHERE 
    (
        (@city IS NOT NULL AND (city LIKE '%'+@Local_city+'%' OR dept_city LIKE '%'+@Local_dept_city+'%' OR org_city LIKE '%'+@Local_org_city+'%'))
        OR
        (@state IS NOT NULL AND ([state] = @Local_state OR dept_state = @Local_dept_state OR org_state = @Local_org_state))
        OR
        (@zip IS NOT NULL AND (zip = @Local_zip OR dept_zip = @Local_dept_zip OR org_zip = @Local_org_zip))
        OR
        (@classification IS NOT NULL AND (classification LIKE '%'+@Local_classification+'%'))
        OR
        ((@startDateMin IS NOT NULL AND @Local_startDateMax IS NOT NULL) AND ([start_date] BETWEEN @Local_startDateMax AND @Local_startDateMax))
        OR
        ((@endDateMin IS NOT NULL AND @Local_endDateMax IS NOT NULL) AND ([end_date] BETWEEN @Local_endDateMin AND @Local_endDateMax))
    )
)

SELECT *
FROM Results_CTE
WHERE RowNum >= @startRowIndex
AND RowNum < @startRowIndex + @maximumRows;
END