2016-11-17 48 views
1

我想从行中获取数据,然后使用该行中的数据查找所有行。SQL - 当行有值时选择所有具有值X的行Y

我的表是这样的:

Invoice Desc   Item_Code  Units  Price  Amount 
1000  PHASE A  45   10  20  200 
1000  BOLTS   16   45  1   45 
1000  Jerry   10   1   100  100 
1001  PHASE B  19   10  5   50 

我想与无论是在发票返回所有行的时候说明是LIKE A相

我知道足够写:

SELECT 
Invoice, Desc, Item_Code, Units, Price, Amount 
FROM tbl 
WHERE 
Desc LIKE '%PHASE A%' 

这将只返回包含PHASE A的行 - 我想要PHASE A的每一行如下:

1000  PHASE A  45   10  20  200 
1000  BOLTS   16   45  1   45 
1000  Jerry   10   1   100  100 

我觉得应该在IN语句中,或者我需要附加一个IN语句,但不知道它应该放在哪里。

+0

DESC是一个保留字,所以我想你不知道够不够甚至为便于该;-) – Strawberry

+0

缩短表。 –

回答

2

我觉得这应该是在IN语句中,或者我需要追加一个 IN声明,但不知道它应该去哪里。

这里

SELECT Invoice, 
     Desc, 
     Item_Code, 
     Units, 
     Price, 
     Amount 
FROM tbl 
WHERE Invoice IN (SELECT Invoice 
        FROM tbl 
        WHERE Desc LIKE '%PHASE A%')