有二个表
表1字段:序号(int,自增型) 整单折扣
1     0.8
表2字段:序号(int,自增型) 商品编号 商品名  销售数量  销售单价  销售金额
1     123    A品   2   6.5    13
2     223    B品   2   6.0    12
3     323    C品   3   3.5    10.5
我想把表2的所有记表全部修改成销售单价*整单折扣,销售金额*整单折扣,其结果如
1     123    A品   2   5.2    10.4
2     223    B品   2   4.8    9.6
3     323    C品   3   2.8    8.4
求update语句

解决方案 »

  1.   

    ----------------------------------------------------------------
    -- Author  :DBA_Huangzj(發糞塗牆)
    -- Date    :2013-04-14 12:57:06
    -- Version:
    --      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
    -- Jun 17 2011 00:57:23 
    -- Copyright (c) Microsoft Corporation
    -- Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
    --
    ----------------------------------------------------------------
    --> 测试数据:[A]
    if object_id('[A]') is not null drop table [A]
    go 
    create table [A]([序号] int,[整单折扣] numeric(2,1))
    insert [A]
    select 1,0.8--> 测试数据:[B]
    if object_id('[B]') is not null drop table [B]
    go 
    create table [B]([序号] int,[商品编号] int,[商品名] varchar(3),[销售数量] int,[销售单价] numeric(2,1),[销售金额] numeric(3,1))
    insert [B]
    select 1,123,'A品',2,6.5,13 union all
    select 2,223,'B品',2,6.0,12 union all
    select 3,323,'C品',3,3.5,10.5
    --------------开始查询--------------------------
    UPDATE [B]
    SET [B].[销售单价]=[B].[销售单价]*[整单折扣],[B].[销售金额]=[B].[销售金额]*[整单折扣]
    from [B] CROSS JOIN [A] SELECT * FROM [B]
    ----------------结果----------------------------
    /* 
    序号          商品编号        商品名  销售数量        销售单价                                    销售金额
    ----------- ----------- ---- ----------- --------------------------------------- ---------------------------------------
    1           123         A品   2           5.2                                     10.4
    2           223         B品   2           4.8                                     9.6
    3           323         C品   3           2.8                                     8.4*/