救命啊!!!!!!!!!!!!! 这个 sql 语句怎么写??? 哪位高手知道???? >>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>

zhuanxin 2003-06-23 03:57:08

编号 公司 产品 日期 价格
id (key) company product date value
--------------------------------------------------------------
000 a p0 2002-12-02 30
001 a p0 2002-01-02 40
002 a p0 2002-06-02 48
003 b p0 2002-02-02 35
004 b p0 2002-03-02 44
005 b p0 2002-10-02 50
006 a p1 2002-12-02 30

.......



怎样得出 所有产品 的 **最终** **最低** 价格表 (如下图)?


编号 公司 产品 日期 价格
id (key) company product date value
-----------------------------------------------------------------
002 a p0 2002-06-02 48
006 a p1 2002-12-02 30

...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
愉快的登山者 2003-06-24
  • 打赏
  • 举报
回复
你是只考虑日期,不考虑时间,去掉时间即可:
select * from tablename as A
where convert(char(10), date, 120) =
(select convert(char(10), date, 120) from tablename where product = A.product)
and value = (select min(value) from tablename where product = A.product
and convert(char(10), date, 120) = convert(char(10), A.date, 120))
order by product
Hrb 2003-06-23
  • 打赏
  • 举报
回复
SELECT ISNULL(tminp.id,tmaxp.id) Id,
ISNULL(tminp.product,tmaxp.product) Product,
ISNULL(tminp.company,'') Company(Min),
ISNULL(tminp.value,0) Min Value,
ISNULL(tmaxp.company,'') Company(Max),
ISNULL(tmaxp.value,0) Value(Max),
FROM
(
SELECT DISTINCT *
FROM TABLE1 t1
INNER JOIN
(
SELECT product,MIN(value) AS value
FROM TABLE1
GROUP BY product) tMin tm ON tm.product=t1.product and tm.value=t1.value)
) tminp

FULL JOIN
(
SELECT DISTINCT *
FROM TABLE1 t1
INNER JOIN
(
SELECT product,MAX(value) AS value
FROM TABLE1
GROUP BY product) tMax tm ON tm.product=t1.product and tm.value=t1.value)
) tmaxp ON tmaxp.id=tminp.id
CrazyFor 2003-06-23
  • 打赏
  • 举报
回复

select * from 表 a where not exists(select 1 from 表 where product=a.product and [date]>a.[date]) or not exists(select 1 from 表 where product=a.product and [value]<a.[value])
pengdali 2003-06-23
  • 打赏
  • 举报
回复
select * from 表 tem where [date]=(select max([date]) from 表 where product=tem.product)
zhuanxin 2003-06-23
  • 打赏
  • 举报
回复
原始表写错了 原始表应该是:
--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0000 p0 v0 50 2002-06-23 11:14:58.000
0001 p0 v0 60 2003-01-23 11:15:14.000
0004 p0 v0 65 2003-04-23 11:16:05.000
0002 p0 v1 55 2003-02-23 11:15:29.000
0003 p0 v1 70 2003-03-23 11:15:43.000
0005 p0 v1 80 2003-05-23 11:16:29.000
...


我需要的结果是: 所有产品(p0, p1, .....) 的 最低价格, 以及这个最低的价格对应的:
价格编号,产品,公司,时间,价格,

--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0004 p0 v0 65 2003-04-23 11:16:05.000
p1
p2
...



tj_dns(愉快的登山者):

结果:
--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0005 p0 v1 80 2003-05-23 11:16:29.000

还是不对哦
zhuanxin 2003-06-23
  • 打赏
  • 举报
回复
tj_dns(愉快的登山者):

结果:
--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0005 p0 v1 80 2003-05-23 11:16:29.000

还是不对哦



原始表是:
--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0005 p0 v1 80 2003-05-23 11:16:29.000
0000 p0 v0 50 2002-06-23 11:14:58.000
0001 p0 v0 60 2003-01-23 11:15:14.000
0004 p0 v0 65 2003-04-23 11:16:05.000
0002 p0 v1 55 2003-02-23 11:15:29.000
0003 p0 v1 70 2003-03-23 11:15:43.000
0005 p0 v1 80 2003-05-23 11:16:29.000
...

我需要的结果是: 所有产品(p0, p1, .....) 的 最低价格, 以及这个最低的价格对应的:
价格编号,产品,公司,时间,价格,

--------------------------------------------------------------------
id product company value date
--------------------------------------------------------------
0004 p0 v0 65 2003-04-23 11:16:05.000
p1
p2
zhuanxin 2003-06-23
  • 打赏
  • 举报
回复
select * from x a inner join
( select company,product,max(value) as maxvalue from x a group by company,product) b
on a.company=b.company and a.product=b.product and a.value=b.maxvalue


结果:
--------------------------------------------------------------------
id product company value company product maxvalue
--------------------------------------------------------------
0005 p0 v1 80 v1 p0 80
0004 p0 v0 65 v0 p0 65


需要的其实是如下数据
--------------------------------------------------------------------
id product company value company product maxvalue
--------------------------------------------------------------
0004 p0 v0 65 v0 p0 65

也就是:

在得出所有产品在 每个公司最终的价格之后, 对全体公司的价格求出最低价. 结果集的结构和原始表的结构一样.
愉快的登山者 2003-06-23
  • 打赏
  • 举报
回复
select * from tablename as A
where date = (select max(date) from tablename where product = A.product)
and value = (select min(value) from tablename where product = A.product
and date = A.date)
order by product
dlkfth 2003-06-23
  • 打赏
  • 举报
回复
select * from 表 a inner join ( select company,product,max(value) as maxvalue from 表 a group by company,product) b on a.company=b.company and a.product=b.product and a.value=b.maxvalue
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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