Mysql 如何使用子查询过滤两次?
我试图选择约束相互矛盾的数据。例如,当项目编号不为空时,有些数据集的状态描述为“90-失去机会”。我想对它进行两次筛选,因此首先我将所有的Sproject_number设置为null,然后我可以再次筛选此查询,以获得一个状态为“90 Lost Opportunity”的表Mysql 如何使用子查询过滤两次?,mysql,sql,sql-server,sql-server-2012,Mysql,Sql,Sql Server,Sql Server 2012,我试图选择约束相互矛盾的数据。例如,当项目编号不为空时,有些数据集的状态描述为“90-失去机会”。我想对它进行两次筛选,因此首先我将所有的Sproject_number设置为null,然后我可以再次筛选此查询,以获得一个状态为“90 Lost Opportunity”的表 SELECT ProjectNumber, PName FROM ( SELECT DISTINCT T0.project_number_ext AS ProjectNumber,
SELECT ProjectNumber,
PName
FROM
(
SELECT DISTINCT
T0.project_number_ext AS ProjectNumber,
T0.project_key AS PKey,
T0.sproject_number AS sPNumber,
T0.project_number AS PNumber,
T0.schedule_finish AS SFinish,
T0.status_desc AS SDesc,
T0.Project_name AS PName
FROM trimergo.rpt_getProjectPOC T0
WHERE T0.sproject_number IS NULL
)
GROUP BY ProjectNumber,
PName;
我想你只需要这个。不需要子查询
SELECT
DISTINCT
T0.project_number_ext as ProjectNumber
,T0.status_desc as SDesc
,T0.Project_name as PName
From trimergo.rpt_getProjectPOC T0
WHERE T0.sproject_number IS NULL AND
( T1.SDesc LIKE '10 - In Proposal%' OR T1.SDesc like '90-Lost Opportunity%' )
这段代码有效,我试图选择约束相互矛盾的数据。例如,当项目编号不为空时,有些数据集的状态描述为“90-失去机会”。我想对它进行两次过滤,所以首先获取所有空数据集,然后过滤该查询以接近所需的数据集
SELECT
T1.ProjectNumber , T1.PName, T1.SDesc
FROM
(
SELECT DISTINCT
T0.project_number_ext as ProjectNumber
,T0.project_key as PKey
,T0.sproject_number as sPNumber
,T0.project_number as PNumber
,T0.schedule_finish as SFinish
,T0.status_desc as SDesc
,T0.Project_name as PName
From trimergo.rpt_getProjectPOC T0
WHERE T0.sproject_number IS NULL ) AS T1
Where T1.SDesc LIKE '10 - In Proposal%'
OR T1.SDesc like '90-Lost Opportunity%'
Group by ProjectNumber, PName, SDesc
您需要为子查询提供一个别名:其中T.sproject_number为NULL,表示为T..........不工作不是问题描述。为什么让我们猜测?您使用的是MySQL还是MS SQL Server?子查询的目的是什么?欢迎使用stackoverflow。请阅读并使用正确的代码格式化错误消息。另外,在询问SQL问题时,最好以DDL+DML create table+insert into语句和所需结果的形式提供示例数据。您好,感谢您的反馈。我更新了我的问题,请看下面我提供的答案。谢谢你不需要子查询,你可以像上面那样做。我已经为你更新了答案。您可以轻松地添加2个或更多类似于上述的条件。谢谢Hanks Pawan,这对我有用!