删除员工人口统计数据提取中的重复行

马特·约翰逊(Matt Johnson)

我正在进行数据提取以获取有关员工的一些人口统计信息。
我遇到了缺少员工的问题,因为不是每个人都有一个电话号码(我不知道为什么)

现在我重复了,因为有些人有主要电话号码和非主要电话号码。
它们可以被列出为移动电话,家庭,办公室等。我想要的是,如果员工有一个主要电话号码来列出它,但是如果他们根本没有这个电话号码,我希望它被列为“ N / A”。

这是我下面的查询。感谢您的协助。

SELECT  DISTINCT
        EJC.PersonTaxIdNo AS [SSN]
        ,EJC.EmpNo AS [Employee ID]
        ,ISNULL(EJC.Salutation, 'N/A') AS [Salutation]
        ,LTRIM(EJC.FirstName) AS [First Name]
        ,LTRIM(EJC.LastName) AS [Last Name]
        ,ISNULL(EJC.NameSuffix,'N/A') AS [Suffix]
        ,VPA.PersonAddress1 AS [Address]
        ,ISNULL(VPA.PersonAddress2,'') AS [Address 2]
        ,VPA.PersonAddressCity AS [City]
        ,VPA.PersonAddressStateAbbrev AS [State]
        ,VPA.PersonAddressPostalCode AS [Zip]
        ,CASE WHEN VPH.PersonPhonePrimaryInd = 1 AND (GETDATE() BETWEEN     VPH.PersonPhoneFromEffectDate AND VPH.PersonPhoneToEffectDate) THEN     VPH.PersonPhoneNo
            WHEN VPH.PersonPhoneNo IS NULL THEN 'N/A' END AS     [Primary Phone]
FROM CNKronos.CNKronos.dbo.EmployeeJob_Curr EJC
    LEFT JOIN CNKronos.CNKronos.dbo.vPERSON_ADDRESSES VPA
        ON EJC.PersonIdNo = VPA.PersonIdNo
    LEFT JOIN CNKronos.CNKronos.dbo.vPERSON_PHONES VPH
        ON EJC.PersonIdNo = VPH.PersonIdNo
WHERE VPA.PersonAddressPrimaryInd = 1
    AND GETDATE() BETWEEN VPA.PersonAddressFromEffectDate AND     VPA.PersonAddressToEffectDate
ORDER BY LTRIM(EJC.LastName), LTRIM(EJC.FirstName) 

PersonIdNo | PersonPhoneSeqNo | PersonPhoneTypeIdNo | PersonPhoneType | PersonPhonePrimaryInd | PersonPhoneNo | PersonPhoneExt | PersonPhoneFromEffectDate | PersonPhoneToEffectDate | PersonPhoneChangeDate   | PersonPhoneIsSmsSw | WTKPhoneIdNo   | Timestamp
71376      | 8129             | 23                  | Mobile          | 1                     | 123-456-7890  |                | 2013-11-21 00:00:00.000   | 3000-01-01 00:00:00.000 | 2014-04-10 20:58:53.450 | 0                  | 2              | 0x000000000503DB2E
71376      | 8130             | 21                  | Work            | 0                     | 234-567-8901  |                | 2013-11-21 00:00:00.000   | 3000-01-01 0:00:00.000  | 2014-04-10 20:58:53.760 | 0                  |   3              | 0x000000000503DB31
Juan Carlos Oropeza的占位符图像

没有架构很难为您提供解决方案。
因此,我将尝试教您如何使用CTE通用表表达式

SQL FIDDLE DEMO

在小提琴中,您可以仅选择中的代码WITH以查看部分结果。

该查询将为您提供在该日期范围内的有效电话。User1有数据User2没有

with current_phone as (
   SELECT u.name, p.*
   FROM 
       users u 
   left join phone p 
       on u.user_id = p.user_id
       and GETDATE() BETWEEN FromDate and ToDate
)
SELECT name, CASE 
                 WHEN phone is null then 'NA'
                 ELSE phone
             END as phone
FROM current_phone

想法是您在CTE中进行少量计算,然后将结果与主表合并。希望能帮助您找到解决方案。

您还可以使用适合您的情况的更好的架构来更新sqlFiddle,并告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实时访问人口统计数据

来自分类Dev

根据人口统计数据中的地址进行分组

来自分类Dev

通过人口统计数据包正确创建“ pop”对象

来自分类Dev

Google Analytics(分析)如何获取人口统计数据(年龄/性别)

来自分类Dev

从表中获取员工和经理的统计数据

来自分类Dev

统计数据中的流入/流出计数

来自分类Dev

我想统计数据帧中某列中重复值的出现并更新python中新列中的计数

来自分类Dev

统计数据框中的特定数据并显示

来自分类Dev

使用 IMDBPy 的人口统计中的评级

来自分类Dev

在谷歌分析中启用人口统计

来自分类Dev

使用Sunspot在Solr中按统计数据分组

来自分类Dev

统计数据库目录中的文档

来自分类Dev

调整统计数据在ggpubr中的位置

来自分类Dev

统计数据框中的150个变量

来自分类Dev

熊猫的groupby统计数据中的NaN值

来自分类Dev

从数组中给出的统计数据列表中计算一个统计数据的单独奖励值

来自分类Dev

一种代理类型的当前和“过去”代理的人口级统计数据

来自分类Dev

从表创建统计数据

来自分类Dev

令人毛骨悚然的统计数据

来自分类Dev

gnuplot多列的统计数据

来自分类Dev

Docker统计数据100%内存

来自分类Dev

每天选择并统计数据

来自分类Dev

来自吉西的统计数据

来自分类Dev

良好的统计数据集成

来自分类Dev

统计数据处理

来自分类Dev

MongoDB 的 30 天统计数据

来自分类Dev

MYSQL 平均日统计数据

来自分类Dev

如何将男性和女性的总和相加,以将性别作为人口统计表中的变量删除。在R Studio中

来自分类Dev

在不同的人口统计范围内合并邮政编码的数据是否安全?

Related 相关文章

热门标签

归档