CharIndex呢??Select C.* From
(Select A.* From MquoteP A Inner Join (Select I_No,M_No,Max([Date]) As [Date] From MquoteP Group By I_No,M_No) B
On A.I_No=B.I_No And A.M_No=B.M_No) C
Inner Join item D
On C.I_No=D.I_No And CharIndex(','+C.M_No+',',','+D.M_NoList+',')>0
解决方案 »
- |zyciis| 如何完全防止网站数据库注入呢 大家来看看我的方法 这样做 还有什么办法可以注入 第三贴 大家给我总结一下
- 通过MSSQL语名,移动文件并改名!
- MySQL与SQL Server2000共存的问题.
- 如何恢复sqlsqlserver 百分求救
- 一个排序的问题,等于今天日期的排上面,大于今天的排中间,小于今天的排下面
- 写了一个存储过程,返回当月有几个星期天,却实现不了
- sql server 2000优化,查询速度很慢
- 怎么由数据库自动计算某个字段的值?
- 高手请进,数据汇总查找
- 关于SQL2005乱码的问题
- 求一条SQL语句!
- 如何取得本机SQL SERVER已安装实例名称,,,我只要本机的,不要局域网内的
from item a,
(select *
from MquoteP a
where not exists(
select 1
from MquoteP
where I_No=a.I_No and M_no=a.M_no and Date>a.Date)
) b
where charindex(','+b.M_No+',',','+a.M_NoList+',')>0 and a.I_No=b.I_No
in ()裡面已經是常數列表了,速度可能會快一點,否則一個查詢可能要 2分鐘以上,會超時錯誤。
Create Table item
(I_No Varchar(5),
M_NoList Varchar(50),
show Bit)
Create Table MquoteP
(I_No Varchar(5),
M_No Varchar(4),
[Date] Varchar(10),
Price Numeric(10,2),
I_Qty1 Int,
I_Price1 Int)
GO
--插入數據
Insert item Select 'pro01', 'm01', 1
Union All Select 'pro02', 'm01,m02',1
Union All Select 'pro03', 'm03', 1
Union All Select 'pro04', 'm02,m03',1Insert MquoteP Select 'pro01', 'm01', '2005-03-02', 1.02, 1000, 1020
Union All Select 'pro01', 'm01', '2006-01-03', 1.01, 1000, 1010
Union All Select 'pro02', 'm01', '2005-03-03', 0.56, 1000, 560
Union All Select 'pro02', 'm02', '2005-12-08', 0.55, 1000, 550
Union All Select 'pro03', 'm03', '2006-01-21', 2.08, 1, 2.08
Union All Select 'pro03', 'm09', '2006-05-03', 2.10, 1, 2.10
Union All Select 'pro04', 'm02', '2005-09-08', 31.2, 1, 31.2
Union All Select 'pro04', 'm03', '2005-09-08', 31.5, 1, 31.5
Union All Select 'pro04', 'm03', '2006-01-02', 31.7, 1, 31.7
GO
--測試
Select C.* From
(Select A.* From MquoteP A Inner Join (Select I_No,M_No,Max([Date]) As [Date] From MquoteP Group By I_No,M_No) B
On A.I_No=B.I_No And A.M_No=B.M_No And A.[Date] =B.[Date] ) C
Inner Join item D
On C.I_No=D.I_No And CharIndex(','+C.M_No+',',','+D.M_NoList+',')>0
GO
--刪除測試環境
Drop Table MquoteP,item
GO
--結果
/*
I_No M_No Date Price I_Qty1 I_Price1
pro01 m01 2006-01-03 1.01 1000 1010
pro02 m02 2005-12-08 .55 1000 550
pro02 m01 2005-03-03 .56 1000 560
pro03 m03 2006-01-21 2.0 1 2
pro04 m03 2006-01-02 31.70 1 31
pro04 m02 2005-09-08 31.20 1 31
*/
謝謝你哦 paoluo(一天到晚游泳的鱼),就你還在關注ing,謝謝!