【发布时间】:2017-04-04 15:33:32
【问题描述】:
我需要帮助修改我的查询,以便每个 ProjectID 只显示一次 PlannedAmount。任何具有重复 ProjectID 的行的 PlannedAmount 都应为 null。
基表:
+------------------------------------------------+ | ProjectID SegmentName 当前MTD | +------------------------------------------------+ | 100 税-国家 20000 | | 100 税-联邦 100000 | | 101 0 号楼 | | 102 土地 0 | | 103 设备 25000 | +------------------------------------------------+PlannedAmounts 表:
+--------------+ |项目 ID 计划金额 | +--------------+ | 100 140000 | | 103 30000 | +--------------+我的查询:
SELECT a.ProjectID, a.SegmentName, a.CurrentMTD, NVL(b.PlannedAmount, 0) as PlannedAmount
FROM Base AS a LEFT JOIN PlannedAmounts AS b ON a.ProjectID = b.ProjectID;
结果:
+-------------------------------------------------- --+ | ProjectID SegmentName CurrentMTD PlannedAmount | +-------------------------------------------------- --+ | 100 税收-州 20000 140000 | | 100 税收-联邦 100000 140000 | | 101 楼 0 0 | | 102 土地 0 0 | | 103 设备 25000 30000 | +-------------------------------------------------- --+我想要什么:
+-------------------------------------------------- --+ | ProjectID SegmentName CurrentMTD PlannedAmount | +-------------------------------------------------- --+ | 100 税收-州 20000 140000 | | 100 税-联邦 100000 | | 101 楼 0 0 | | 102 土地 0 0 | | 103 设备 25000 30000 | +-------------------------------------------------- --+我不想为任何重复的 ProjectID 重复 PlannedAmount - 我只想显示一次 - 在任何给定 ProjectID 第一次出现时。
【问题讨论】: