今天SQL2000上实现了个随机查询几条的小程序。突然想到过几天后就要写个分组查询。然后查出仅有一条的一个挺复杂的存储过程。
命令涉及到至少4个表。感觉挺复杂的,有点不知道要怎么写。
在此简化表结构就提个核心问题,希望大家帮忙下。
表结构:
A表----父表
CompanyID SawCompany
1001 A公司
1002 B公司
1003 C公司
1008 D公司
1200 E公司B表----子表
ProdID ProdName CompanyID(A表的主键)
1 P1产品 1001
2 P2产品 1001
5 P3产品 1001
7 P4产品 1001
8 P8产品 1001
24 P0产品 1001
30 M1产品 1003
31 M2产品 1003
33 U2产品 1008
34 K1产品 1200
36 P3产品 1200
..............................
也就是父表跟明细表那我要的查询是
select 子表B的ProdName----要求B表相同的CompanyID,只能随机抽取一个产品出来。
综合现实多个表内链接查询要求。查询语句中不大可能再用distince来进行过滤重复字段。
各位有没有高效的查询方法。能贴出来吗?或者觉得太复杂的化。随机抽取也可以省掉。但相同的COmpanyID只能显示一条产品
表数据很大。不想用distince进行过滤
========================
汗,CSDN搞的灰色特效弄的我都没法把本贴发布在SQL 区。在.net区几天后版主请帮我转移贴下。
解决方案 »
- 有用过mschart控件的吗?多个Series想合并,请问该怎么弄?
- asp.net ajax如何保持VIEWSTATE
- 有点迷惑,<input type="file"/> 能否读取客户端文件以及如何读取?
- 域服务器怎么添加aspnet用户?
- 对于虚拟主机的SQL数据库,有什么好的管理办法?
- 请问各路 大侠诸侯 如何统计站点的在线人数呀?
- asp.net操作excle文件,按照格式声称文本,为什么我生成的文本中的汉字在win98中显示乱码呢?
- 如何提取sqlserver中得图片(不是图片地址)?
- 如何实现DataGrid的右键菜单功能?
- 怎么用javascript获取.net控件(比如是:TextBox控件)的text值
- XML查询问题,在线等..大虾们进来看看
- 关于GridView
insert into tt select 1,'P1产品','1001'
insert into tt select 2,'P2产品','1001'
insert into tt select 5,'P3产品','1001'
insert into tt select 7,'P4产品','1001'
insert into tt select 8,'P8产品','1001'
insert into tt select 24,'P0产品','1001'
insert into tt select 30,'M1产品','1003'
insert into tt select 31,'M2产品','1003'
insert into tt select 33,'U2产品','1008'
insert into tt select 34,'K1产品','1200'
insert into tt select 36,'P3产品','1200'select a.* from tt a where ProdID =
(select top 1 ProdID from tt where CompanyID = a.CompanyID order by newid())
create table tt(ProdID int,ProdName varchar(10),CompanyID varchar(10))
insert into tt select 1,'P1产品','1001'
insert into tt select 2,'P2产品','1001'
insert into tt select 5,'P3产品','1001'
insert into tt select 7,'P4产品','1001'
insert into tt select 8,'P8产品','1001'
insert into tt select 24,'P0产品','1001'
insert into tt select 30,'M1产品','1003'
insert into tt select 31,'M2产品','1003'
insert into tt select 33,'U2产品','1008'
insert into tt select 34,'K1产品','1200'
insert into tt select 36,'P3产品','1200'
select max(ProdID),
max(ProdName),
CompanyID
from tt
group by CompanyID
order by CompanyID