在重复条目上添加一次金额

时间:2014-11-24 21:34:45

标签: sql sql-server view

美好的一天

我们有一个服务部门,我们出去服务设备。有时我们会为特定客户提供一张以上的工作卡,但我们只收取一个" CALL OUT FEE"即

JOB CARD |  CLIENT  |  DATE |  CALL OUT FEE
  121    | AA       | 01/01/2014 | 500
  124    | AA       | 01/01/2014 |  0

我想将CALL OUT FEE仅添加到第一个条目,其中客户端和日期在其他条目中相同。

我不知道从哪里开始,我想我必须以某种方式索引重复项1,2,3等,并使用HAVING INDEX = 1来保留第一个条目。

我怎么能以一种非常简单的方式做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

如果job card是唯一的,您可以尝试这样的事情:

select * from your_tab 
where job_card in (
    select min(JOB_CARD)
    from your_tab group by CLIENT, DATE
);

答案 1 :(得分:0)

这将仅更新给定ClientCode的第一个JobCard记录和日期:

DECLARE @CallOutFee MONEY
DECLARE @ClientCode VARCHAR(50)
DECLARE @Date DATETIME

SET @CallOutFee = 500
SET @ClientCode = 'AA'
SET @Date = '20141125'

UPDATE
  JobCards
SET
  [CALL OUT FEE] = @CallOutFee
WHERE
  JobCardID = (
               SELECT
                MIN(JobCardID)
               FROM
                JobCards
               WHERE
                ClientCode = @ClientCode AND
                [Date] = @Date
              )