首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求上方SQL文简化写法

2012-11-18 
求下方SQL文简化写法SELECT DISTINCTAt.GOOD_NO ,( SELECT TOP 1IN_DateFROMdbo.VM_InStock SWHERES.GOOD_

求下方SQL文简化写法
SELECT DISTINCT
  At.GOOD_NO ,
  ( SELECT TOP 1
  IN_Date
  FROM dbo.VM_InStock S
  WHERE S.GOOD_NO = At.GOOD_NO
  ORDER BY IN_Date DESC
  ) IN_Date ,
  ( SELECT TOP 1
  Price
  FROM dbo.VM_InStock S
  WHERE S.GOOD_NO = At.GOOD_NO
  ORDER BY IN_Date DESC
  ) Price
FROM dbo.VM_InStock At
WHERE IN_Type = 1

[解决办法]

SQL code
SELECT TOP 1 At.GOOD_NO ,IN_Date,PriceFROM    dbo.VM_InStock At INNER JOIN  dbo.VM_InStock S ON S.GOOD_NO = At.GOOD_NOWHERE   at.IN_Type = 1ORDER BY s.IN_Date DESC
[解决办法]
--如果同GOOD_NO、同IN_Date没有重复数据,那么可以用下面的
select GOOD_NO, IN_Date, Price
from dbo.VM_InStock t1 
where not exists(select 1 from dbo.VM_InStock t2 where t2.GOOD_NO = t1.GOOD_NO and t2.IN_Date > t1.IN_Date)
--其实,最严谨的就是你那个top 1...

热点排行