令人困惑的SQL中的CO-RELATION

时间:2015-10-07 07:03:03

标签: sql sql-server

任何人都可以帮我解决以下情况的代码。

两个表DriverProduct

产品

DECLARE @PRODUCT TABLE
(
    [Base Part] VARCHAR (50),
    [REP PART] VARCHAR (50),
    [Base Line] VARCHAR (50),
    [REP LINE]  VARCHAR (50) 
)

INSERT @PRODUCT
SELECT 'EXT8765',       'EXT8765-35',       'Cold Air Intake',  'TNNEAUCVRL'        UNION ALL
SELECT 'EXT40655',      'EXT7205-1',        'Cold Air Intake',  'TONORLCRNR'        UNION ALL
SELECT 'AFE54-11602',   'AFE24-60505',      'Cold Air Intake',  'STEERING'          UNION ALL
SELECT 'UNDUC4070',     'UNDRSIH1212GS',    'Cold Air Intake',  'Air Filter Big'    UNION ALL
SELECT 'EXT44720',      'EXT43720B',        'Cold Air Intake',  'Air Filter Small'  UNION ALL
SELECT 'EXT50725',      'EXT50725',         'TONNEAUCOV',       'TNNEAUCVRL'        UNION ALL
SELECT 'KMWXD77',       'KMW10007',         'WHEEL',            'WHLCTRCAP'         UNION ALL
SELECT 'KCH1761',       'KCH3079',          'FGLGTKIT',         'FGLGHTLENS'        UNION ALL
SELECT 'EXT38650',      'EXT3865',          'TONNEAUCOV',       'TONNOBOW'  UNION ALL
SELECT 'ALS6097KL',     'ALS117',           'FUELFILLER',       'HONDACITY' 

SELECT * FROM @PRODUCT

驱动程序

DECLARE @DRIVER TABLE
(
    [Base Line]     VARCHAR (50),
    [REP LINE]  VARCHAR (50)
)

INSERT @DRIVER
SELECT 'Cold Air Intake',   'Air Filter%'

SELECT * FROM @DRIVER

规则:

每当Product basePart等于驱动程序表中可用的baseline时,我想检查base line表 那么它的REP Part也应该有不同的 REPLine,而不是驱动程序表中可用的行

记录那些符合此标准的,应该在输出中:

Base Part   REP PART    Base Line       REP LINE
---------------------------------------------------
EXT8765     EXT8765-35  Cold Air Intake TNNEAUCVRL
EXT40655    EXT7205-1   Cold Air Intake TONORLCRNR
AFE54-11602 AFE24-60505 Cold Air Intake STEERING

1 个答案:

答案 0 :(得分:2)

编辑问题&预期结果进行了修改,现在修改为匹配。

这个怎么样:

select *
from product as p
where exists (
  select 1
  from driver as d
  where p.[base line] = d.[base line]
  and   p.[rep line] not like d.[rep line]
)

在这里看到它:http://sqlfiddle.com/#!6/5526f/7

我希望我能正确理解这个问题。将来,请尝试更好地格式化它,并解释它想要做什么,或许甚至创造一个小小的谜语来节省我们的时间并帮助我们理解。