SQL SERVER 2005两表关联查询问题,查询某商品最后一次进价

有A、B两表,A表存放汇总信息,包括单据编号,日期等信息,单据编号唯一。B表存放明细信息,包括单据编号,商品内码,数量,价格等信息,单据编号不唯一,A、B两表属于一对多关... 有A、B两表,A表存放汇总信息,包括单据编号,日期等信息,单据编号唯一。B表存放明细信息,包括单据编号,商品内码,数量,价格等信息,单据编号不唯一,A、B两表属于一对多关系,根据单据编号连接。现在想查某个商品最后一次购进的信息,包括日期,数量,价格等。 展开
 我来答
unique_lele
2013-07-20 · TA获得超过112个赞
知道小有建树答主
回答量:210
采纳率:100%
帮助的人:156万
展开全部
select Top 1 A.日期,B.数量,B.价格 from A left join B on A.单据编号=B.单据编号 where B.商品内码='你要查询的商品内码' order by A.日期 desc

你试试我的SQL 。
更多追问追答
追问
试过了呢,查单个商品可以,要查所有的商品最后一次进价呢?
追答
select * from B as B1 where  exists (select Max(a.日期) from  A left join B on A.单据编号=B.单据编号 where A.单据编码=B1.单据编码  Group by A.日期,B.商品内码 )
这个你试试

我这个意思就是按日期查出每个商品的最大日期对应的 单据编码。 有了单据编码 想查啥都能查出来了。
我这个SQL只显示了B表中的信息 如果需要A表中的信息 可以关联一下A表 也就出来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2013-07-20 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4001万
展开全部
你试试,我也不确定对不对

select * from b
where exists
( select 1 from a a1 where a1.日期 =
( select max(a.日期)
from a
where a.单据编号 = b.单据编号
and b.商品内码 = 'xxxxx'
and a1.单据编号 = b.单据编号
)
)
更多追问追答
追问
消息 147,级别 15,状态 1,第 2 行
聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
追答
这个应该没有问题了。

select b.* from b,a
where a.单据编号 = b.单据编号
and a.日期 = (
select max(a.日期)
from a,b
where a.单据编号 = b.单据编号
and b.商品内码 = 'xxxxx'
)
and b.商品内码 = 'xxxxx'
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2013-07-20 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:855万
展开全部
select max (日期), * from 表 B
group by 单据编号
更多追问追答
追问
我想说,B表没有日期。。
追答
写详细点表结构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
17号观察室
2013-07-20 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1344万
展开全部
--最后一次购进 应该是最晚的日期为判断吧
更多追问追答
追问
我知道是根据最大日期,但是怎么关联呢?
追答
--先排个序 然后预算
--有我们问题可以随时找我 希望采纳 一起执行
with tbname as (
select a.单据编号,a.日期,b.商品内码,b.数量,b.价格,
ROW_NUMBER() over (partition by b.商品内码 order by a.日期 desc) bz
from a join b on a.单据编号=b.单据编号)
select 单据编号,日期,商品内码,数量,价格
from tbname where bz=1 and 商品内码=‘你要查询的商品’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式