求一个表连接SELECT语句!

gzpydc 2012-11-08 09:13:00

' 求一个SQL的SELECT语句,用于连接两个表
' 并且依照日期的大小,返回最新的不重复记录,具体期望如下:

' 1、在[Products]表中寻找所有Username等于[Users]表中的Username的记录
' 2、在上述基础上以[Products]表中的CompleteDate字段作为条件获取不重复的唯一记录
' 3、把[Products]得到的结果与表[Users]连接,得到结果集

' 因为[Products]的Username字段中并没出现“李四”的记录
' 因此结果集只需要返回两笔不重复的记录
' 请问这个SELECT语句该如何编写?谢谢!


' 表Users
' UID Username Department
'--------------------------------------------------------------
' 1 张三 生产部
' 2 李四 研发部
' 3 王五 品质部


' 表Products
'--------------------------------------------------------------
' ProID Username Item CompleteDate
' 1 张三 开料 2012-6-8
' 2 王五 抽检 2012-6-8
' 3 王五 出货检验 2012-6-10
' 4 张三 送检 2012-6-9
' 5 王五 打包装 2012-6-9


' 期望得到结果集
' UID Username Department ProID Item CompleteDate
'---------------------------------------------------------------
' 3 王五 品质部 3 出货检验 2012-6-10
' 1 张三 生产部 4 送检 2012-6-9
...全文
273 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzpydc 2012-11-09
  • 打赏
  • 举报
回复
非常感谢各位的帮助,结贴了!
-Tracy-McGrady- 2012-11-08
  • 打赏
  • 举报
回复
都有人回答了,结了吧。
昵称被占用了 2012-11-08
  • 打赏
  • 举报
回复
SELECT  B.UID,B.Username,B.Department,A.ProID,A.Item,A.CompleteDate 
FROM [Products] A,[Users] B
WHERE A.Username = B.Username
AND NOT EXISTS (
SELECT 1
FROM [Products] C
WHERE A.Username = C.Username
AND C.CompleteDate  > A.CompleteDate 
)
  • 打赏
  • 举报
回复

;with t
as(
select
    u.uid,
    u.Username,
    u.Department,
    p.ProID,
    p.Item,
    p.CompleteDate
from Users u
inner join Products p
on u.Username=p.Username
)
select
    *
from
    t 
where
    t.CompleteDate=(select max(a.CompleteDate) from t a where a.username=t.uaername)
快溜 2012-11-08
  • 打赏
  • 举报
回复
select * from Users a,Products b where a.Username=b.Username and not eixsts(select 1 from Products where Username=b.Username and CompleteDate>b.CompleteDate)
独孤蒙少 2012-11-08
  • 打赏
  • 举报
回复
引用 1 楼 ssp2009 的回复:
select * from Users a,Products b where a.Username=b.Username and not eixsts(select 1 from Products where Username=b.Username and CompleteDate>b.CompleteDate)
这个不错!
极品老土豆 2012-11-08
  • 打赏
  • 举报
回复

---------------------创建表以及插入数据,开始-----------------------------------
if(object_id('a')is not null) drop table a
go
create table a
(
UID int,
Username varchar(50),
Department varchar(50)
)
go
insert into a
select 1,'张三','生产部' union all 
select 2,'李四','研发部' union all 
select 3,'王五','品质部'
go

if(object_id('b')is not null) drop table b
go
create table b
(
ProID int,
Username varchar(50),
Item varchar(50),
CompleteDate datetime
)
go
insert into b
select 1,'张三','开料','2012-6-8' union all 
select 2,'王五','抽检','2012-6-8' union all 
select 3,'王五','出货检验','2012-6-10' union all  
select 4,'张三','送检','2012-6-9' union all  
select 5,'王五','打包装','2012-6-9'
go

---------------------创建表以及插入数据,结束-----------------------------------
--开始select
select a.UID,a.username,a.Department,b.ProID,b.Item,
       convert(char(10),b.CompleteDate,121)as CompleteDate
 from a inner join b on a.username = b.username
        inner join (select username,max(completeDate)as CompleteDate from b group by username)as c on b.username = c.username and c.CompleteDate = b.CompleteDate

--结果展示

/*
UID         username                                           Department                                         ProID       Item                                               CompleteDate
----------- -------------------------------------------------- -------------------------------------------------- ----------- -------------------------------------------------- ------------
1           张三                                                 生产部                                                4           送检                                                 2012-06-09
3           王五                                                 品质部                                                3           出货检验                                               2012-06-10

(2 行受影响)

*/

坚_持 2012-11-08
  • 打赏
  • 举报
回复
可以这样写
内容概要:本文围绕“基于改进秃鹰算法的微电网群经济优化调度”展开研究,利用Matlab代码实现优化算法的仿真与复现。研究重点在于通过改进的秃鹰搜索算法(Bald Eagle Search Algorithm, BESA)解决微电网群在运行过程中的经济调度问题,提升算法的收敛速度与全局寻优能力,以实现对分布式能源、储能系统及负荷的高效协调管理。文中详细阐述了微电网群的系统架构、数学建模过程、目标函数设计(如运行成本最小化、碳排放降低等),并结合智能优化算法进行解,验证了改进算法相较于传统方法在调度精度和效率方面的优越性。同时,研究还探讨了算法在多场景下的适应性,为微电网群的智能化、低碳化运行提供了技术支持与实践参考。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能优化算法相关工作的工程技术人员。; 使用场景及目标:① 学习并掌握改进秃鹰算法在复杂优化问题中的应用方法;② 实现微电网群经济调度模型的构建与解;③ 对比不同智能算法在电力系统优化中的性能现;④ 为科研论文复现、课题研究或工程项目提供算法支持与代码参考。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块分析,重点关注算法改进策略与调度模型的耦合实现方式,同时可尝试在不同参数设置或场景条件下进行仿真实验,以加深对算法性能与调度效果的理解。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧