Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从子选择中给定值,然后在查询中重新输入_Sql_Sql Server - Fatal编程技术网

Sql 从子选择中给定值,然后在查询中重新输入

Sql 从子选择中给定值,然后在查询中重新输入,sql,sql-server,Sql,Sql Server,我的dbo.Report表有一个名为Name的列。我需要以某种方式选择子选择中的“名称”列。如何从子选择中获取名称值?一旦我有了这些,我需要能够运行另一个select查询,例如: SELECT * FROM MyOtherTable WHERE Name = @pName 其中@pName是一个新创建的变量,其值可能来自子选择??我不知道这是怎么回事。或者像这样: SELECT * FROM MyOtherTable WHERE Name IN (the values from my sub

我的dbo.Report表有一个名为Name的列。我需要以某种方式选择子选择中的“名称”列。如何从子选择中获取名称值?一旦我有了这些,我需要能够运行另一个select查询,例如:

SELECT * FROM MyOtherTable WHERE Name = @pName
其中@pName是一个新创建的变量,其值可能来自子选择??我不知道这是怎么回事。或者像这样:

SELECT * FROM MyOtherTable WHERE Name IN (the values from my sub select go here)
过程:


可以使用表变量存储名称

DECLARE @Names TABLE
(
  Name varchar(250),
  SomeInt int
)

INSERT INTO @Names (Name, SomeInt)
SELECT Name, sum(ListingViews)
FROM WhateverTable
GROUP BY Name

SELECT * FROM OtherTable WHERE Name IN (SELECT Name FROM @Names)
您可以继续使用@Names,就像它是任何其他表一样,如果您在存储过程中使用它,它将在结束时自动处理表变量的清理。

类似这样的事情吗? 或者你还需要什么? 我一点也不明白,对不起

SELECT * 
FROM MyOtherTable 
WHERE Name IN (SELECT name FROM Table WHERE Name = @pName)
编辑: 像这样的

 SELECT COUNT(*), name
 FROM MyOtherTable O,  Table T
 WHERE O.Name = T.NAME
 AND T.NAME = @pName
 group by name

好的,太好了。如何从子选择中获取名称?如果我理解正确,您可以将子选择的结果插入@Names。此时,您可以使用selectname FROM@Names从sub-SELECT中获取所有名称。如何将sub-SELECT中的名称结果获取到@Names?它不允许我对表变量执行联合选择名称、SUMListingViewsWell,您必须添加SELECT语句中包含的列数,我已编辑了答案以包含这些列。我需要从子选择中获取计数和名称吗?我怎么能从中得到多个值呢?你真正的问题是什么,我更新了我的答案,但仍然不明白,你不能在问题中告诉任何关于你的程序应该做什么,它没有做什么?
 SELECT COUNT(*), name
 FROM MyOtherTable O,  Table T
 WHERE O.Name = T.NAME
 AND T.NAME = @pName
 group by name