我在A列中有一个包含部件号列表的表。我将称之为“原始数字”(12345)和“7-”数字,以“7-”开头,然后只需添加一个原始数字到最后(7-12345)。我正在尝试仅选择在删除前两个字符时原始数字也存在的“7-”数字。
我无法定义WHERE条件以确保所选的“7-”部件号也具有存在于同一列中的相应原始编号(某些“7-”编号中没有相应的原始编号表 - 我只想要那些。)
一旦确定了这些配对,我需要将“7-”部件号的B列中的值与相应“原始”部件号的C列中的值进行比较。有什么想法吗?
提前致谢!
答案 0 :(得分:1)
您将不得不在Cognos中使用两个查询。一个查询将为您提供以“7-”开头的部分编号,以及删除部分编号中删除“7-”的部分。
select
pn.partnum,
right(pn.partnum,len(pnpartnum) -2) as Trimmed
from
partnumbers pn
where
pn.partnum like ''7-%'
您的第二个查询只会让您获得所有不以“7 - ”开头的部分号码。
select
* from
partnumbers
where partnum not like '7%'
您将添加一个连接查询,并在其中使用这两个查询,从而产生以下内容:
select
query1.partnum,
query2.partnum
from
(
select
pn.partnum,
right(pn.partnum,len(pnpartnum) -2) as Trimmed
from
partnumbers pn
where
pn.partnum like '7-%' ) Query1
inner join
(select
* from
partnumbers
where partnum not like '7%') Query2
on query1.trimmed = query2.partnum
这是一个非常简化的SQL Fiddle示例。