我有一张这样的表
IVA
id - taxa - name - date
1 - 0.18 - normal - 1/1/2014
2 - 0 - none - 1/1/2014
3 - 0.23 - max - 1/1/2013
4 - 0.16 - normal - 1/1/2015
...
我有一个产品IVA.id
,我想知道当前日期的分类群是什么。
所以我必须两次查询这个表:
Select name
from IVA
where id = 1; (return me normal)
Select taxa
from IVA
where name = 'normal'
and date <= '12/12/2015';
我可以将这两个查询加入一个吗?
由于
答案 0 :(得分:3)
请尝试:
Select taxa
from IVA
where name in (Select a.name from IVA a where a.id = 1)
and date<='12/12/2015';
答案 1 :(得分:0)
取决于您正在使用的数据库引擎,但您可能希望查找数据库的UNION关键字。
答案 2 :(得分:0)
为什么不使用如下的子查询:
Select taxa
from IVA
where name=(select top 1 name from IVA where id = 1)
and date<='12/12/2015';
我认为如果有重复的ID,您可能会得到不同的名称,因此排名前1。 如果您想使用IN子句使用的所有名称:
Select taxa
from IVA
where name IN (select name from IVA where id = 1)
and date<='12/12/2015';
PS:前1名可能无法在所有情况下使用。它的引擎特定。
答案 3 :(得分:0)
您可以尝试以下方法:
SELECT i1.name, i1.taxa
FROM iva i1, iva i2
WHERE i1.date <= '12/12/2015'
AND i1.name = i2.name
AND i2.id = 1
您未在问题中指定DBMS,因此我不完全确定上述日期格式是否有效。