--题目数据准备
--库存表@KC;订单表@dd
set nocount on--库存表
DECLARE @KC TABLE( 
Code char(10), --货品编码
Color char(50), --货品颜色
Num  int --库存数量
)INSERT INTO @KC SELECT '01','RED',8
INSERT INTO @KC SELECT '02','RED',2
INSERT INTO @KC SELECT '01','WHITE',10
INSERT INTO @KC SELECT '02','BLACK',25
INSERT INTO @KC SELECT '03','BLUE',15
INSERT INTO @KC SELECT '03','RED',3
--订单表
DECLARE @DD TABLE (
Code char(10), --货品编码
Color char(50), --货品颜色
Num  int --订单数量
)INSERT INTO @DD SELECT '03','RED',4
INSERT INTO @DD SELECT '01','RED',1
INSERT INTO @DD SELECT '02','BLUE',10
INSERT INTO @DD SELECT '03','WHITE',2--数据准备结束-------------------------------------
--select*from @KC
--select*from @DD
--题目1、要求用一句话查找出订单信息在库存信息里不存在商品(编码和颜色);比如订单表里的第三行数据就在库存信息里不存在

解决方案 »

  1.   

    比如 select * from tablea where id not in (select id from tableb)
      

  2.   

    select @DD.Code,@DD.Color,@DD.Num from @KC,@DD where @[email protected] and @[email protected]
      

  3.   


    select * from @DD as a where not exists(select 1 from @KC where Code=a.code and Color=a.color)
      

  4.   

    1.
    select * from @DD t where not exists
    (select 1 from @KC where  code = t.code and color = t.color)
    --结果是两条2.
    select a.code,a.color, a.num - b.num from @dd a,@kc b where a.code = b.code and a.color = b.color
    and a.num >b.num
    楼主把帖子移到MSSQL版去
      

  5.   


    --题目数据准备
    --库存表@KC;订单表@dd
    set nocount on--库存表
    DECLARE @KC TABLE( 
    Code char(10),  --货品编码
    Color char(50),  --货品颜色
    Num  int  --库存数量
    )INSERT INTO @KC SELECT '01','RED',8
    INSERT INTO @KC SELECT '02','RED',2
    INSERT INTO @KC SELECT '01','WHITE',10
    INSERT INTO @KC SELECT '02','BLACK',25
    INSERT INTO @KC SELECT '03','BLUE',15
    INSERT INTO @KC SELECT '03','RED',3
    --订单表
    DECLARE @DD TABLE (
    Code char(10),  --货品编码
    Color char(50),  --货品颜色
    Num  int  --订单数量
    )INSERT INTO @DD SELECT '03','RED',4
    INSERT INTO @DD SELECT '01','RED',1
    INSERT INTO @DD SELECT '02','BLUE',10
    INSERT INTO @DD SELECT '03','WHITE',2
    --1.
    select * from @DD t where not exists
    (select 1 from @KC where  code = t.code and color = t.color)
    --结果是两条--2.
    select a.code,a.color, a.num - b.num from @dd a,@kc b where a.code = b.code and a.color = b.color
    and a.num >b.numCode       Color                                              Num
    ---------- -------------------------------------------------- -----------
    02         BLUE                                               10
    03         WHITE                                              2code       color                                              
    ---------- -------------------------------------------------- -----------
    03         RED                                                1楼主不要重复发帖
      

  6.   

    select a.* from @dd a left join @KC b on a.code=b.code and a.color=b.color
     where b.color is null
      

  7.   

    第二题的答案是 现查出来的1.2两句话结果集,怎么和在一起?
    1.select * from @DD t where not exists
    (select 1 from @KC where code = t.code and color = t.color)2.select a.code,a.color, a.num - b.num from @dd a,@kc b where a.code = b.code and a.color = b.color
    and a.num >b.num