Sql server SQL Server,包含多个where语句的内部联接
我在设置以下查询时遇到困难: 在MATERIALSCOSTACT表中查找具有两个特定Material值之一的所有WORKORDER值 然后,从WORKORDER表中,我想用“main replace”或“install”描述删除所有值,然后我想确保我只查看water或Newer ASSETGROUP。我想确保我只查看自今年第一年以来发生的女同性恋记录 我想将MaterialCostAct表和WORKORDER表内部联接到它们的共享WORKORDERID列中 我不知道如何将第一条语句与第二条语句连接起来,在第二条语句中,SQL Server在“INNER”上给了我一个语法错误Sql server SQL Server,包含多个where语句的内部联接,sql-server,join,Sql Server,Join,我在设置以下查询时遇到困难: 在MATERIALSCOSTACT表中查找具有两个特定Material值之一的所有WORKORDER值 然后,从WORKORDER表中,我想用“main replace”或“install”描述删除所有值,然后我想确保我只查看water或Newer ASSETGROUP。我想确保我只查看自今年第一年以来发生的女同性恋记录 我想将MaterialCostAct表和WORKORDER表内部联接到它们的共享WORKORDERID列中 我不知道如何将第一条语句与第二条语句连
非常感谢任何能帮忙的人 你只是把where子句放错地方了。它需要在连接之后出现
Select * from [CityWorks].[AZTECA].[WORKORDER]
INNER JOIN workorderid on [CityWorks].[AZTECA].[materialcostact].[workorderid] =
[CityWorks].[AZTECA].[WORKORDER].[workorderid]
where description not like '%main replace%' and description not like '%install%'
and (assetgroup = 'WATER' or Assetgroup = 'SEWER')
and womatcost != 0
and ACTUALSTARTDATE > '2013-12-31 00:00:00.000'
group by assetgroup
如果这些列出现在多个表中,您可能需要为表添加别名,或者在where子句中更加明确。我相信这就是您想要的: 注意:尽量使用别名,它们使代码更容易阅读
Select *
from [CityWorks].[AZTECA].[WORKORDER] WO
JOIN [CityWorks].[AZTECA].[materialcostact] MC
on WO.[workorderid] = MC.[workorderid]
and (MC.materialsid = 30791 or MC.materialsid = 30841)
where description not like '%main replace%' and description not like '%install%'
and (assetgroup = 'WATER' or Assetgroup = 'SEWER')
and womatcost != 0
and ACTUALSTARTDATE >= '2014-01-01'
谢谢你们两位!JiggsJedi你的提问很有效
Select *
from [CityWorks].[AZTECA].[WORKORDER] WO
JOIN [CityWorks].[AZTECA].[materialcostact] MC
on WO.[workorderid] = MC.[workorderid]
and (MC.materialsid = 30791 or MC.materialsid = 30841)
where description not like '%main replace%' and description not like '%install%'
and (assetgroup = 'WATER' or Assetgroup = 'SEWER')
and womatcost != 0
and ACTUALSTARTDATE >= '2014-01-01'