从要加入的表的列中仅选择前1个值?

问题描述

下面是查询,如何将仅前1个“ agencyID”存储到DCA.AgencyID中?我知道下面查询的结构方式将选择所有“ agencyID”值,而不仅仅是前1个。

SELECT AP.ID,DCA.AgencyID as agencyID --How to store select top 1?,replace(LTRIM(RTRIM(AP.UserNameWebsite)),'\','') AS username,replace(LTRIM(RTRIM(AP.FirstName)),'') + N' ' + replace(LTRIM(RTRIM(AP.LastName)),'') AS fullName,LTRIM(RTRIM(AP.EmailAddress)) AS email,LTRIM(RTRIM(AP.Phone1)) AS phone1,LTRIM(RTRIM(AP.Phone2)) AS phone2,LTRIM(RTRIM(AP.GreenSolution)) AS greenSolution,CASE 
            WHEN UserType = 'AM'
                THEN 1
            ELSE 0
            END AS producer
    FROM DEV01_DataExchange.[DuckCreek].[fpmAgentsProfile] AP
    Inner Join [DUCKCREEK_DEV].[DEV01_DuckCreek_Consolidated].[dbo].Agency DCA
    on AP.AgencyID = DCA.Reference
    WHERE TransType = 'A' AND DC_LastModifiedDate IS NULL AND DCA.Reference is NOT NULL

解决方法

您的问题有点含糊,但答案是cross apply

FROM DEV01_DataExchange.[DuckCreek].[fpmAgentsProfile] AP CROSS APPLY
     (SELECT TOP (1) DCA.*
      FROM [DUCKCREEK_DEV].[DEV01_DuckCreek_Consolidated].[dbo].Agency DCA
      WHERE AP.AgencyID = DCA.Reference
     ) DCA
WHERE TransType = 'A' AND DC_LastModifiedDate IS NULL AND DCA.Reference is NOT NULL;

通常将使用ORDER BY子句。也许ORDER BY DCA.AgencyID DESC?但是,如果有一个名为AgencyID的列,我很惊讶它没有用于与AP的对齐。

此外,某些WHERE条件可能属于子查询。

,

您可以使用交叉应用而不是联接:

SELECT   AP.ID,DCA.AgencyID as agencyID,replace(LTRIM(RTRIM(AP.UserNameWebsite)),'\','') AS username,replace(LTRIM(RTRIM(AP.FirstName)),'') + N' ' + replace(LTRIM(RTRIM(AP.LastName)),'') AS fullName,LTRIM(RTRIM(AP.EmailAddress)) AS email,LTRIM(RTRIM(AP.Phone1)) AS phone1,LTRIM(RTRIM(AP.Phone2)) AS phone2,LTRIM(RTRIM(AP.GreenSolution)) AS greenSolution,CASE 
            WHEN UserType = 'AM'
                THEN 1
            ELSE 0
            END AS producer
    FROM DEV01_DataExchange.[DuckCreek].[fpmAgentsProfile] AP
    Cross Apply
    (
        Select top 1 AG.*
        From [DUCKCREEK_DEV].[DEV01_DuckCreek_Consolidated].[dbo].Agency AG
        where AG.Reference = AP.AgencyID
    ) DCA
    WHERE TransType = 'A' AND DC_LastModifiedDate IS NULL AND DCA.Reference is NOT NULL

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...