2017-08-11 39 views
0
@sipcount= (SELECT ISNULL(SUM(SIP.[Total]),0) FROM 
        (
         SELECT COUNT(1) AS Total FROM [dbo].[MF_tblSundaramSIPDetails] AS [mtfsd] 
          WHERE ISNULL([mtfsd].[TrxnType],'') = 'SYSTEMATIC PURCHASE' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
         UNION ALL 
         SELECT COUNT(1) AS Total FROM [dbo].[MF_tblCamsSIPDetails] AS [mtfsd] 
          WHERE ISNULL([AUT_Trntyp],'') = 'P' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
         UNION ALL 
         SELECT COUNT(1) AS Total FROM [dbo].[MF_tblFranklinSIPDetails] AS [mtfsd] 
          WHERE ISNULL([mtfsd].[isSipStp],'') = 'SIP' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
         UNION ALL 
         SELECT COUNT(1) AS Total FROM [dbo].[MF_tblKarvySIPDetails] AS [mtfsd] 
          WHERE ISNULL([mtfsd].[TrType],'') = 'SIP' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
        ) AS SIP) 

现在我要检查,如果每个选择Count存在(1)如下面检查是否存在包含多个工会

@sipcount= (SELECT ISNULL(SUM(SIP.[Total]),0) FROM 
        (if exists(select 1) 
begin 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblSundaramSIPDetails] AS [mtfsd] 
           WHERE ISNULL([mtfsd].[TrxnType],'') = 'SYSTEMATIC PURCHASE' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
end 
else 
begin 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblSundaramSIPDetails1] AS [mtfsd] 
           WHERE ISNULL([mtfsd].[TrxnType],'') = 'SYSTEMATIC PURCHASE' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',')) 
end 
         ) AS SIP)       
+0

您可以在查询本身中使用AND EXISTS。 – Amit

+0

请你举例 –

回答

0

像这样的事情会为你工作语句SQL的内表。检查AND EXISTS的用法。您可能需要格式化它,并且支架可能会在这里和那里,但这是AND EXISTS的工作原理。

Select @sipcount= (SELECT ISNULL(SUM(SIP.[Total]),0) FROM ( 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblSundaramSIPDetails] AS [mtfsd] WHERE ISNULL([mtfsd].[TrxnType],'') = 'SYSTEMATIC PURCHASE' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',') 
AND EXISTS (SELECT 1 FROM TableName WHERE Column_Value = 'STR') 
) UNION ALL 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblCamsSIPDetails] AS [mtfsd] WHERE ISNULL([AUT_Trntyp],'') = 'P' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',') AND EXISTS 
(SELECT 1 FROM TableName WHERE Column_Value = 'STR')) 
UNION ALL 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblFranklinSIPDetails] AS [mtfsd] WHERE ISNULL([mtfsd].[isSipStp],'') = 'SIP' AND [mtfsd].[ClientFK] IN (SELECT NewspaperFK FROM dbo.Split(@ClientPK,',') 
AND EXISTS (SELECT 1 FROM TableName WHERE Column_Value = 'STR')) 
UNION ALL 
SELECT COUNT(1) AS Total FROM [dbo].[MF_tblKarvySIPDetails] AS [mtfsd] WHERE ISNULL([mtfsd].[TrType],'') = 'SIP' AND [mtfsd].[ClientFK] IN 
(SELECT NewspaperFK FROM dbo.Split(@ClientPK,',') 
AND EXISTS (SELECT 1 FROM TableName WHERE Column_Value = 'STR') 
)) AS SIP)