首页 > 其他 > 详细

存储过程

时间:2014-07-09 18:15:25      阅读:372      评论:0      收藏:0      [点我收藏+]
USE [MainDb]
GO
/****** Object:  StoredProcedure [dbo].[ccChatOnLineByCaMainIDSelect]    Script Date: 07/08/2014 16:33:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-------------------------------
--Andy.Yin 2014-06-26
--获取企业的15日内联系人列表,或者曾经有留言的的联系人
-------------------------------

ALTER PROCEDURE [dbo].[ccChatOnLineByCaMainIDSelect]
    @CaMainID INT    --企业用户的ID
AS
BEGIN
    
    CREATE TABLE #UserList
    (
        ChatOnlineID INT,
        CaMainID INT,
        CvMainID INT,
        LastChatDate SMALLDATETIME,
        SumUnRead INT,
        IsHidden BIT    
    )
    --企业的联系人列表,有留言的
    INSERT INTO #UserList
        SELECT 
            MAX(a.ID),
            a.CaMainID,
            a.CvMainID,
            MAX(b.Adddate),
            COUNT(1),
            0
        FROM ChatOnline a, ChatOnlineLog b
        WHERE a.id = b.ChatOnlineID
            AND b.IsViewed = 0
            AND b.SenderType <> 1 --不是企业发送的
            AND a.caMainId = @CaMainID --当前企业用户
        GROUP BY a.CaMainID, a.CvMainID

    --企业联系列表,15天有联系的
    INSERT INTO #UserList    
        SELECT 
            MAX(ID),
            CaMainID,
            CvMainID,
            (SELECT MAX(Adddate) FROM ChatOnlineLog WHERE ChatOnlineLog.ChatOnlineID IN(SELECT ID FROM ChatOnline a WHERE a.cvMainID = ChatOnline.cvMainID AND a.caMainID = ChatOnline.caMainID)),
            0,
            0
        FROM ChatOnline
        WHERE caMainId = @CaMainID --当前企业用户
            AND AddDate > GETDATE() - 15
            AND NOT EXISTS(SELECT X FROM #UserList b WHERE b.cvMainID = ChatOnline.cvMainID AND b.caMainID = ChatOnline.caMainID)
        GROUP BY CaMainID,CvMainID
    
    --企业联系列表,15之外曾有联系的,隐藏不显示
    INSERT INTO #UserList    
        SELECT 
            MAX(ID),
            CaMainID,
            CvMainID,
            (SELECT MAX(Adddate) FROM ChatOnlineLog WHERE ChatOnlineLog.ChatOnlineID IN(SELECT ID FROM ChatOnline a WHERE a.cvMainID = ChatOnline.cvMainID AND a.caMainID = ChatOnline.caMainID)),
            0,
            1
        FROM ChatOnline
        WHERE caMainId = @CaMainID --当前企业用户
            AND AddDate < GETDATE() - 15
            AND NOT EXISTS(SELECT X FROM #UserList b WHERE b.cvMainID = ChatOnline.cvMainID AND b.caMainID = ChatOnline.caMainID)
        GROUP BY CaMainID,CvMainID

    --最终结果
    SELECT 
        a.*,
        b.Name PaName,
        b.ID PaMainID,        
        c.Name UserName,
        dbo.GetPaOnlineStatus(a.cvMainID) IsOnline
    FROM #UserList a, PaMain b, cvMain c
    WHERE a.cvMainID = c.ID
        AND b.ID = c.paMainID
    ORDER BY a.LastChatDate DESC
    
    DROP TABLE #UserList
END

 

存储过程,布布扣,bubuko.com

存储过程

原文:http://www.cnblogs.com/ustcyc/p/3831779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!