TSQL中的内部联接结果

时间:2018-10-04 17:58:52

标签: sql inner-join

我有三个正在使用的表,但是我很难得到我需要的东西。

这些表称为文档,变量和变量值。文档具有主键DocumentID,VariableValue和Variable具有主键VariableID和VariableValue也具有DocumentID作为主键。以下查询非常接近我的需求。此外,它控制文件版本返回到最新版本。

Select Distinct vv.ValueCache as 'Company Name'
from VariableValue vv, Documents d
where d.DocumentID = vv.DocumentID and
vv.VariableID =  (Select VariableID
                   from Variable
                   where  VariableName  = 'Supplier Type' and d.Deleted = 0) and 
vv.RevisionNo = (Select Max( Vv1.RevisionNo)
                  From VariableValue vv1 
                  where vv1.VariableID = vv.VariableID and
                        vv1.DocumentID = d.DocumentID and
                        vv1.ValueText is not null)  and
vv.ValueCache != ''

我真正想要得到的是文件列表,其中“供应商类型”列(在“变量”表中称为)没有包含在VariableValues中的值“ Distributor”。 ValueText列。我觉得我已经很接近了,我只是想不通如何在调用中获取Distributor参数。

1 个答案:

答案 0 :(得分:0)

老实说,我不是100%确定您的要求。具体来说,我不确定“在通话中获取Distributor参数”的含义,但听起来您正在寻找的只是WHERE vv1.ValueText <> 'Distributor'或{{1} }子句。 例如,

NOT IN

<your query> ... WHERE vv1.ValueText NOT IN (select * from dbo.MyTable where vv1.ValueText <> 'Distributor')可能是一件好事。如果您可以提供样本表,那将大有帮助。