查询入库记录中最低进价记录入库记录表(store_in)单号(p1) 单序(p2) 代码(pru_p20) 品名(pru_p1)规格(pru_p4)产地(pru_p3) 进价(p8) 数量(p7) 供应商代码(p14)
0510170001 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.500000 60.0000 00021
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00021
0504050022 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 20.0000 00026
0504080008 7 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 80.0000 00026
0509290025 4 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 100.0000 05188
0511200002 12 1010008 鼻炎康片 50T*10瓶 佛山德众 5.600000 300.0000 05213
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05213 查询第一种结果, 最低进价(如果有相等的取每个供应商最大单号)0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00021
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 100.0000 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05213查询第二种结果,最低进价的最大单号.0511250017 5 1010008 鼻炎康片(新) 50T*10瓶 佛山德众 5.400000 200.0000 05226
0510170001 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.500000 60.0000 00021
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00021
0504050022 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 20.0000 00026
0504080008 7 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 80.0000 00026
0509290025 4 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 100.0000 05188
0511200002 12 1010008 鼻炎康片 50T*10瓶 佛山德众 5.600000 300.0000 05213
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05213 查询第一种结果, 最低进价(如果有相等的取每个供应商最大单号)0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 50.0000 00021
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 100.0000 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.400000 200.0000 05213查询第二种结果,最低进价的最大单号.0511250017 5 1010008 鼻炎康片(新) 50T*10瓶 佛山德众 5.400000 200.0000 05226
解决方案 »
- SQL Server 2000索引优化
- sqlserver2000怎么新建用户,修改用户密码?
- 问个数据库问题,请高手指点
- subscriptions 不能删除identity的not for replication
- 如何判断某一字段名在表中属于第几列
- 数据库报TCP connection closed 错误,微软的补丁解决不了问题,求指导
- SQL2005 登录被触发器限制
- 我创建了一个视图,就是用union连接了31个表。怎么从这个视图中筛选出匹配的内容呢?
- 请教 在线等待:把VIEW1中把所有字段 VVV 中值相等的纪录 中所有字段中的值相加怎么办?
- 紧急求助! 我想在一个子过程中返回一个长字符串到调用过程中如何处理. 哪位高手帮我一下, 昨天送了100分还是未解决问题. 先谢谢
- 求教个查询的语句!!!!!!!
- 关于一个存储过程的问题!
(
单号 varchar(50),
单序 int,
代码 varchar(50),
品名 varchar(50),
规格 varchar(50),
产地 varchar(50),
进价 float,
数量 int,
供应商代码 varchar(50)
)
insert into #store_in(单号,单序,代码,品名,规格,产地,进价,数量,供应商代码)
select '0510170001',1,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.500000,60.0000,'00021' union all
select '0510180001',10,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0504050022',1,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.400000,80.0000,'00026' union all
select '0504080008',7,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.400000,60.0000,'00026' union all
select '0509290025',4,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.400000,50.0000,'00026' union all
select '0511250017',5,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.400000,200.0000,'05226' union all
select '0510310009',15,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,100.0000,'05188' union all
select '0511200002',12,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.600000,300.0000,'05213' union all
select '0511230022',2,'1010008','鼻炎康片','50T*10瓶','佛山德众', 5.400000,200.0000,'05213'
select a.代码,a.品名,a.规格,a.产地,a.进价,a.供应商代码 from #store_in a
where a.[进价]=(select min([进价]) from #store_in where a.代码=代码)
group by a.代码,a.品名,a.规格,a.产地,a.进价,a.供应商代码
order by a.供应商代码 desc
drop table #store_in
from store_in_close a
inner join (select min(p8) as minp8, pru_p20
from store_in_close
group by pru_p20) b
on a.pru_p20=b.pru_p20 and a.p8=b.minp8我这个句语,只取出来了最低进价的记录,没有取出"最低进价(如果有相等的取每个供应商最大单号)"和"最低进价的最大单号."请赐教
(
单号 varchar(50),
单序 int,
代码 varchar(50),
品名 varchar(50),
规格 varchar(50),
产地 varchar(50),
进价 float,
数量 int,
供应商代码 varchar(50)
)
insert into #store_in(单号,单序,代码,品名,规格,产地,进价,数量,供应商代码)
select '0510170001',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510180001',10,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0504050022',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,80.0000,'00026' union all
select '0504080008',7,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,60.0000,'00026' union all
select '0509290025',4,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0511250017',5,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05226' union all
select '0510310009',15,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,100.0000,'05188' union all
select '0511200002',12,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.600000,300.0000,'05213' union all
select '0511230022',2,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05213'
go
select * from
(
select * from #store_in a where (select count(*) from #store_in where 进价<a.进价)=0
) c where (select count(*) from
(
select * from #store_in a where (select count(*) from #store_in where 进价<a.进价)=0
) d where d.供应商代码=c.供应商代码 and d.单号>c.单号
)=0
--结果
单号 单序 代码 品名 规格 产地 进价 数量 供应商代码
-------------------------------------------------- ----------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------------- ----------- --------------------------------------------------
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 50 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 100 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05213(4 行受影响)
(
单号 varchar(50),
单序 int,
代码 varchar(50),
品名 varchar(50),
规格 varchar(50),
产地 varchar(50),
进价 float,
数量 int,
供应商代码 varchar(50)
)
insert into #store_in(单号,单序,代码,品名,规格,产地,进价,数量,供应商代码)
select '0510170001',1,'1010009','眼炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510170001',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510180001',10,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0504050022',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,80.0000,'00026' union all
select '0504080008',7,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,60.0000,'00026' union all
select '0509290025',4,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0511250017',5,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05226' union all
select '0510310009',15,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,100.0000,'05188' union all
select '0511200002',12,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.600000,300.0000,'05213' union all
select '0511230022',2,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05213'
go
select * from
(
select * from #store_in a where (select count(*) from #store_in where 代码=a.代码 and 进价<a.进价)=0
) c where (select count(*) from
(
select * from #store_in a where (select count(*) from #store_in where 代码=a.代码 and 进价<a.进价)=0
) d where d.供应商代码=c.供应商代码 and d.单号>c.单号
)=0
--结果
单号 单序 代码 品名 规格 产地 进价 数量 供应商代码
-------------------------------------------------- ----------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------------- ----------- --------------------------------------------------
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 50 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 100 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05213
0510170001 1 1010009 眼炎康片 50T*10瓶 佛山德众 5.5 60 00021(5 行受影响)
现在补充说明一个问题
查询入库记录中最低进价记录入库记录表(store_in)里面有很多记录,挑一些如下:单号 单序 代码 品名 规格 产地 进价 数量 供应商代码
0412060001 1 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 10 00008
0504080101 5 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.50 20 00010
0508010006 2 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 30 00008
0508090009 7 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 50 00008
0510170001 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.50 60 00021
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 50 00021
0504050022 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 20 00026
0504080008 7 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 80 00026
0509290025 4 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 50 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 100 05188
0511200002 12 1010008 鼻炎康片 50T*10瓶 佛山德众 5.600 300 05213
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 200 05213 查询第一种结果, 最低进价(如果有相等的取每个供应商最大单号)0412060001 1 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 10 00008
0508090009 7 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 50 00008
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 50 00021
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 100 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.40 200 05213查询第二种结果,最低进价的最大单号.0508090009 7 2011800 螺旋霉素片 0.1g*12t*2板 山东新华 1.40 50 00008
0511250017 5 1010008 鼻炎康片(新) 50T*10瓶 佛山德众 5.40 200 05226
Create table #store_in
(
单号 varchar(10),
单序 int,
代码 varchar(10),
品名 varchar(10),
规格 varchar(10),
产地 varchar(10),
进价 float,
数量 int,
供应商代码 varchar(10)
)
insert into #store_in(单号,单序,代码,品名,规格,产地,进价,数量,供应商代码)
select '0510170001',1,'1010009','眼炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510170001',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510180001',10,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0504050022',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,80.0000,'00026' union all
select '0504080008',7,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,60.0000,'00026' union all
select '0509290025',4,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0511250017',5,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05226' union all
select '0510310009',15,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,100.0000,'05188' union all
select '0511200002',12,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.600000,300.0000,'05213' union all
select '0511230022',2,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05213'
go
select * from
(
select * from #store_in a where (select count(*) from #store_in where 代码=a.代码 and 进价<a.进价)=0
) c where (select count(*) from
(
select * from #store_in a where (select count(*) from #store_in where 代码=a.代码 and 进价<a.进价)=0
) d where d.代码=c.代码 and d.供应商代码=c.供应商代码 and d.单号>c.单号
)=0--结果
单号 单序 代码 品名 规格 产地 进价 数量 供应商代码
---------- ----------- ---------- ---------- ---------- ---------- ---------------------- ----------- ----------
0510170001 1 1010009 眼炎康片 50T*10瓶 佛山德众 5.5 60 00021
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 50 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 100 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4 200 05213(5 行受影响)
(
单号 varchar(10),
单序 int,
代码 varchar(10),
品名 varchar(10),
规格 varchar(10),
产地 varchar(10),
进价 float,
数量 int,
供应商代码 varchar(10)
)
insert into #store_in(单号,单序,代码,品名,规格,产地,进价,数量,供应商代码)
select '0510170001',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.500000,60.0000,'00021' union all
select '0510180001',10,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0504050022',1,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,80.0000,'00026' union all
select '0504080008',7,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,60.0000,'00026' union all
select '0509290025',4,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,50.0000,'00026' union all
select '0511250017',5,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05226' union all
select '0510310009',15,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,100.0000,'05188' union all
select '0511200002',12,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.600000,300.0000,'05213' union all
select '0511230022',2,'1010008','鼻炎康片','50T*10瓶','佛山德众',5.400000,200.0000,'05213'
select *
from #store_in a
where not exists(select *
from #store_in
where a.供应商代码 = 供应商代码 and (进价 - a.进价) < 0.1
and cast(单号 as int) > cast(a.单号 as int) )
/*
单号 单序 代码 品名 规格 产地 进价 数量 供应商代码
---------- ----------- ---------- ---------- ---------- ---------- ----------------------------------------------------- ----------- ----------
0510170001 1 1010008 鼻炎康片 50T*10瓶 佛山德众 5.5 60 00021
0510180001 10 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4000000000000004 50 00026
0511250017 5 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4000000000000004 200 05226
0510310009 15 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4000000000000004 100 05188
0511230022 2 1010008 鼻炎康片 50T*10瓶 佛山德众 5.4000000000000004 200 05213
*/drop table #store_in