SQL子查询如何返回多列?
材料目录表编码,规格采购发票表,(有多个不同时间的价格)编码,规格,供应商,价格,日期我想生成一个表返回所有材料(材料目录表)的最新价格,供应商,日期要考虑性能,我的采购...
材料目录表
编码,规格
采购发票表,(有多个不同时间的价格)
编码,规格,供应商,价格,日期
我想生成一个表
返回所有材料(材料目录表)的最新价格,供应商,日期
要考虑性能,我的采购发票表有几十万行
请不要用多个子查询来返回多个列,这个方案被我的否定了。 展开
编码,规格
采购发票表,(有多个不同时间的价格)
编码,规格,供应商,价格,日期
我想生成一个表
返回所有材料(材料目录表)的最新价格,供应商,日期
要考虑性能,我的采购发票表有几十万行
请不要用多个子查询来返回多个列,这个方案被我的否定了。 展开
展开全部
在工作表后面的是它的别名,目的是为了书写方便、易读,使用什么字符串都可以
下面是在Access中录制的SQL语句:
SELECT 数据表1.编号
FROM 数据表1 LEFT JOIN 数据表2 ON 数据表1.编号 = 数据表2.编号
WHERE (((数据表2.编号) Is Null));
使用别名:
SELECT a.编号
FROM 数据表1 b LEFT JOIN 数据表2 b ON a.编号 = b.编号
WHERE b.编号 Is Null
下面是在Access中录制的SQL语句:
SELECT 数据表1.编号
FROM 数据表1 LEFT JOIN 数据表2 ON 数据表1.编号 = 数据表2.编号
WHERE (((数据表2.编号) Is Null));
使用别名:
SELECT a.编号
FROM 数据表1 b LEFT JOIN 数据表2 b ON a.编号 = b.编号
WHERE b.编号 Is Null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
;with cte as(select *,row_number() over(partition by 编码 order by 日期 desc)rn
from 采购发票表
)select a.*,b.* from 材料目录表 a left join cte b on a.编码=b.编码 and b.rn=1
更多追问追答
追问
没看懂,像“;with”这是些什么??
追答
公用表表达式,就当做派生表用,先运行里面的语句,得到结果集再与其他表关联
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
材料表的主键是什么 编码 还是 编码+规格
追问
编码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询