create table cate
(
id int primary key,
cateName nvarchar(50),
countScore float,--分数
ctime smalldatetime default(getdate())--添加该类别时间
)
create table kplan
(
id int identity(1,1) primary key,
username nvarchar(30) foreign key references Users(username),
cid int foreign key references cate(id),--类别id外键
context text,--内容
ptime nvarchar(12),--几月份(上中下旬)计划时间
publishTime smalldatetime default(getdate()),--填写时间
sIf nvarchar(10) default('未审核')--已审核、未审核
)
create table kpractice(
id int identity(1,1) primary key,
username nvarchar(30) foreign key references Users(username),
cid int foreign key references cate(id),--类别id外键
practice text,,--得分
ptime nvarchar(12)--几月份(上中下旬)计划时间
publishTime smalldatetime default(getdate()),--填写时间
)
我写的语句是:
select c.id as id,c.cateName as cateName,k.context as context,c.countScore as countScore,p.practice from ((kplan as k inner join cate as c on k.cid=c.id) inner join kpractice as p on p.cid=c.id) where k.username='张三' and k.ptime='2011年4月上旬' and k.sIf='已审核'
得到的结果:
id cateName context countScore score
1 原有系统常规维护工作是基础工作 aa 40 40
2 新项目建设计划完成工作 aa 40 40
3 其他工作 aa 10 5
4 学习 aa 10 5
1 原有系统常规维护工作是基础工作 aa 40 10
2 新项目建设计划完成工作 aa 40 11
3 其他工作 aa 10 10
4 学习 aa 10 10
怎么去除每行的重复项呢?请教高手?
1,先确定哪里有重复,即你业务对重复的定义。
2,针对有复杂的使用distinct
distinct
用left join 写SQl语句,不会有重复的了
id cateName context countScore score
1 原有系统常规维护工作是基础工作 aa 40 40
2 新项目建设计划完成工作 aa 40 40
3 其他工作 aa 10 5
4 学习 aa 10 5
1 原有系统常规维护工作是基础工作 aa 40 10
2 新项目建设计划完成工作 aa 40 11
3 其他工作 aa 10 10
4 学习 aa 10 10
这是查询表返回的所有结果?