Sql 子查询未显示所有结果
我有一个子查询,它从一个表中获取项目编号,并在where子句中使用它从主表中获取结果。但是,子查询不会返回正确的结果。以下是查询和示例:Sql 子查询未显示所有结果,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有一个子查询,它从一个表中获取项目编号,并在where子句中使用它从主表中获取结果。但是,子查询不会返回正确的结果。以下是查询和示例: ,( select TOP 1[UNITPRCE]FROM [NIMET].[dbo].[SOP10200] where [NIMET].[dbo].[SOP10200].ITEMNMBR=tblJobHold.ITEMNMBR order by [NIMET].[dbo].[SOP10200].ReqShipDate desc ) ITEMNM
,(
select TOP 1[UNITPRCE]FROM [NIMET].[dbo].[SOP10200]
where [NIMET].[dbo].[SOP10200].ITEMNMBR=tblJobHold.ITEMNMBR
order by [NIMET].[dbo].[SOP10200].ReqShipDate desc
)
ITEMNMBR Price
07-0008 0.48000
20232001 0.00000
22241457 0.00000
67181001 0.00000
LR56230-095 2.36000
S-AF509 0.59000
S24A7869A1 0.00000
这会返回一些结果,但是,当我取一个显示为零的结果并对表运行它时,我会得到一个结果
SELECT TOP 1 [UNITPRCE]FROM [NIMET].[dbo].[SOP10200]
where ITEMNMBR='20232001'
order by ReqShipDate desc
UNITPRCE
2.10000
为什么子查询不返回此结果
这是整个问题。它很短
declare @start datetime,
@end datetime
set @start =convert(datetime,'10/13/2014')
set @end =convert(datetime,'10/14/2014')
SELECT
tblJobHold.[MANUFACTUREORDER_I]
,[HoldQty]
,tblJobHold.[ITEMNMBR]
,[ITEMDESC]
,[OnHoldByName]
,[OnHoldDate]
,[Problem]
,[Cause]
,[Resolution]
,[Notes]
,[ReleasedByName]
,[ReleasedDate]
,(SELECT TOP 1 [UNITPRCE]FROM [NIMET].[dbo].[SOP10200]
where ITEMNMBR=tblJobHold.ITEMNMBR
order by ReqShipDate desc)
FROM [NIMETData].[dbo].[tblJobHold]
WHERE [ReleasedDate] >= @start AND [ReleasedDate] < @end
and Resolution in ('NOT FOUND', 'SCRAP-NIMET','SCRAP-PIONEEER','SCRAP-PIONEER','SCRAP-CUSTOMER','REWORK')
什么数据类型是[NIMET].[dbo].[SOP10200].ITEMNMBR和tblJobHold.ITEMNMBR这里没有足够的信息,你能发布整个脚本吗?ITEMNMBR=tblJobHold.ITEMNMBR看起来很模糊,从[NIMET].[dbo].[SOP10200]x中选择前1个[UNITPRCE]如何?其中x.ITEMNMBR=tblJobHold.ITEMNMBR按需求日期排序描述无骰子,抱歉。谢谢你的帮助,尽管我在SSRS报告中运行了这个查询,结果是正确的。这是什么意思?
,(SELECT TOP 1 [shipToName]
FROM [NIMET].[dbo].[SOP10200]
where ITEMNMBR=tblJobHold.ITEMNMBR
order by ReqShipDate desc) as 'Ship To'