zoukankan      html  css  js  c++  java
  • 临时表,分组排序,分页

    ALTER PROCEDURE Proc_GetPreBuyResumeBase
        @ResumeSourceSite varchar(100) = '51Job',    --目标网站
        @ContactState varchar(50) = '',                --购买导入状态
        @ResumeCodeType    varchar(5),                --查询简历ID类型:简历现ID[0]/简历源ID[1]
        @ResumeCode varchar(20) = '',                --简历ID
        @CityID varchar(100),                        --分站
        @OrderSet varchar(50),                        --排序设置
        @BuyNum varchar(5) ,                        --购买数量
        @Size int,                                    --页面显示最大数量
        @Index varchar(10),                            --页面当前索引
        @Count int output                            --带回当前条件查询数
    AS
    BEGIN    
        DECLARE @sql nvarchar(4000)
        
        CREATE TABLE #ResumeBase (
            ResumeID uniqueidentifier PRIMARY KEY
            ,JobSeekerID uniqueidentifier
            ,ResumeCode varchar(64)
            ,ResumeSourceSite varchar(20)
            ,ResumeSourceID varchar(64)
            ,UpdateDate datetime
            ,CreateDate datetime)
            
        CREATE TABLE #BuyResume(ResumeID uniqueidentifier PRIMARY KEY, Quantity int, ValidQuantity int)
        
        --
        INSERT INTO #BuyResume(ResumeID, Quantity, ValidQuantity)
        SELECT ResumeID, COUNT(ResumeID) Quantity, SUM(CASE WHEN DATEDIFF(day, BuyDate, GETDATE()) <= 7 THEN 1 ELSE 0 END) ValidQuantity
        FROM BuyNoContactResume
        GROUP BY ResumeID
            
        IF (@ResumeCode = '')
            INSERT INTO #ResumeBase(
                ResumeID
                ,JobSeekerID
                ,ResumeCode
                ,ResumeSourceSite
                ,ResumeSourceID
                ,UpdateDate
                ,CreateDate)
            SELECT
                ResumeID
                ,JobSeekerID
                ,ResumeCode
                ,ResumeSourceSite
                ,ResumeSourceID
                ,UpdateDate
                ,CreateDate
            FROM dbo.ResumeBase
            WHERE ResumeSourceSite = @ResumeSourceSite
                AND ResumeID IN (SELECT ResumeID FROM #BuyResume)
        ELSE--简历编号不为空
        BEGIN
            IF (@ResumeCodeType = '0')--简历现ID
                INSERT INTO #ResumeBase(
                    ResumeID
                    ,JobSeekerID
                    ,ResumeCode
                    ,ResumeSourceSite
                    ,ResumeSourceID
                    ,UpdateDate
                    ,CreateDate)
                SELECT
                    ResumeID
                    ,JobSeekerID
                    ,ResumeCode
                    ,ResumeSourceSite
                    ,ResumeSourceID
                    ,UpdateDate
                    ,CreateDate
                FROM dbo.ResumeBase
                WHERE ResumeCode = @ResumeCode
                    AND ResumeID IN (SELECT ResumeID FROM #BuyResume)
            ELSE                    --简历源ID
                INSERT INTO #ResumeBase(
                    ResumeID
                    ,JobSeekerID
                    ,ResumeCode
                    ,ResumeSourceSite
                    ,ResumeSourceID
                    ,UpdateDate
                    ,CreateDate)
                SELECT
                    ResumeID
                    ,JobSeekerID
                    ,ResumeCode
                    ,ResumeSourceSite
                    ,ResumeSourceID
                    ,UpdateDate
                    ,CreateDate
                FROM dbo.ResumeBase
                WHERE ResumeSourceSite = @ResumeSourceSite
                    AND ResumeSourceID = @ResumeCode
                    AND ResumeID IN (SELECT ResumeID FROM #BuyResume)
        END
        
        CREATE INDEX IX_ResumeBaseTemp_JobSeekerID ON #ResumeBase(JobSeekerID ASC);
        
        CREATE TABLE #TempRecord (IndexID int
            ,ResumeID uniqueidentifier
            ,ResumeCode varchar(64)
            ,ResumeSourceSite varchar(20)
            ,ResumeSourceID varchar(64)
            ,Quantity int
            ,ValidQuantity int
            ,UpdateDate datetime
            ,CreateDate datetime
            ,CityID varchar(20)
            ,ContactState tinyint)

        IF (@ContactState = '')
            SET @ContactState = '0,1,2'    
        
        SET @sql = '
        SELECT IndexID = ROW_NUMBER() OVER(ORDER BY ' + @orderSet + '), t.*
        FROM (
                SELECT
                    rb.ResumeID
                    ,rb.ResumeCode
                    ,rb.ResumeSourceSite
                    ,rb.ResumeSourceID
                    ,b.Quantity
                    ,b.ValidQuantity
                    ,rb.UpdateDate
                    ,rb.CreateDate
                    ,i.CityID
                    ,i.ContactState
                FROM
                    #ResumeBase rb
                    JOIN JobSeekerInfo i ON i.JobSeekerID = rb.JobSeekerID
                    JOIN #BuyResume b ON b.ResumeID = rb.ResumeID
                WHERE
                    i.CityID IN (SELECT Rowvalue FROM dbo.f_split(''' + @CityID + ''', '',''))
                    and b.Quantity >= ' + @BuyNum + '
                    AND i.ContactState IN(SELECT Rowvalue FROM dbo.f_split(''' + @ContactState + ''', '',''))
            ) t'

        --PRINT (@sql)
        
        INSERT INTO #TempRecord
        EXEC (@sql)
                        
        --返回统计数
        SELECT @count = max(IndexID) from #TempRecord
        --返回数据
        SELECT * FROM #TempRecord tmp
        WHERE IndexID > (@index*@Size) and IndexID<=((@index + 1) * @Size)
        DROP TABLE #TempRecord
    END
  • 相关阅读:
    Atitit alldiaryindex v1 t717 目录 1. Fix 1 2. Diary detail 1 2.1. Diary 1987---2016.12 1 2.2. Diary20
    Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet 1 1.2. Python的
    Atitit 网关协议cgi wsgi fcgi fastcgi 目录 1.1. CGI(common gateway unterface) 1 1.2. 2.1 WSGI: 1 1.3. 2.3
    Atitit gui的实现模式文本 dom ast 像素绘图api native 目录 1. Pl ast xml domAst 1 1.1. 简介 1 1.1.1. 【具体语法树】 2 2.
    Atitit 遍历文件夹目录解决方案与规范 attilax总结 1. 规范 2 1.1. 注意的不要同时改变文件夹内容,增删文件。这样获取到的目录list不会变化 2 1.2. 主义中文名称文件读写
    Atitit node.js自定义模块化 Function walkFileTree() exports.walkFileTree =walkFileTree 引用  Files=require
    Atitit node.js问题解决总结t99 目录 1.1. 找不到node程序 1 1.2. GBK编码问题 1 2. 按行读取gbk编码问题 2 2.1. 先写入txt utf8 encode
    Atitit io读取文件法 目录 1. 文件法 1 1.1. 异步读取文件: 1 1.2. 2.同步读取方法 1 1.3. 二进制读文件: 1 2. 读取api规范 1 3. Atitit 按照
    Atitit 按照行读取文件 目录 1.1. 类库'readline' 1 1.2. 类库C:workspacedataindexGenerNodejssdkioFileUtils.js
    Atitit sumdoc index 2019 v6 t56 .docx Atitit sumdoc index s99 目录 1. Zip ver 1 1.1. C:UsersAdminis
  • 原文地址:https://www.cnblogs.com/ylemzhang/p/1632154.html
Copyright © 2011-2022 走看看