SQL Server中的东西查询

时间:2016-09-06 21:09:05

标签: sql sql-server sql-server-2008

SELECT DISTINCT 
    AcNumber,   
    (SELECT STUFF((SELECT '::' + (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(NomiName)),35,',',1,'Y','F'))),',',' '))
                   FROM [DepNominee] DPN
                   WHERE (AcNumber = DPN.AcNumber)
                   FOR XML PATH(''), TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS JBL_NOM_NAME,
    (SELECT STUFF((SELECT '::' + (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(FHName)),35,',',1,'Y','F'))),',',' '))
                   FROM [DepNominee] DPN
                   WHERE (AcNumber = DPN.AcNumber)
                   FOR XML PATH(''),TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS NOM_FATH_NAME,
    (SELECT STUFF((SELECT '::' + (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(MHName)),35,',',1,'Y','F'))),',',' '))
                   FROM [DepNominee] DPN
                   --WHERE (AcNumber = DPN.AcNumber)
                   FOR XML PATH(''),TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS NOM_MOTH_NAME
FROM 
    [DepNominee] DPN
GROUP BY 
    AcNumber, NomiName

这是我的代码,我希望根据我的AccountNumber查看所有数据。但我看到只有一个数据在不同的帐号中一直重复。我附上图片:

My output:

1 个答案:

答案 0 :(得分:2)

我怀疑问题是您在多个地方使用别名DPN,导致您的子查询无法关联。

试试这样:

SELECT DISTINCT 
    AcNumber,   
    (SELECT STUFF((SELECT '::' +     (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(NomiName)),35,',',1,'Y','F'))),',',' '))
               FROM [DepNominee] DPN2
               WHERE (DPN.AcNumber = DPN2.AcNumber)
               FOR XML PATH(''), TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS JBL_NOM_NAME,
    (SELECT STUFF((SELECT '::' +  (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(FHName)),35,',',1,'Y','F'))),',',' '))
               FROM [DepNominee] DPN2
               WHERE (DPN.AcNumber = DPN2.AcNumber)
               FOR XML PATH(''),TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS NOM_FATH_NAME,
    (SELECT STUFF((SELECT '::' + (REPLACE(RTRIM(LTRIM([master].dbo.Mig_fn_cutString([master].dbo.Mig_fn_StringReduce(UPPER(MHName)),35,',',1,'Y','F'))),',',' '))
               FROM [DepNominee] DPN2
               --WHERE (DPN.AcNumber = DPN2.AcNumber)
               FOR XML PATH(''),TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, '')) AS NOM_MOTH_NAME
FROM 
    [DepNominee] DPN
GROUP BY 
    AcNumber, NomiName
相关问题