想通过FR查询某个物料最近的供应商的最新单价,但是SQL查询有问题

SQL问题

业务场景:如下截图

数据库语法是:

select i.item_id,

       i.item_code  as  物料编码,

       i.item_name  as  物料名称,

       u.uom_name  as  单位,

       v.vendor_id,

   v.vendor_code as  供应商编号,

       v.vendor_name as 供应商名称,

       p.price_tax as 含税价,

       p.price_notax as  不含税价,

       case

         when is_referenced = 2 then

          '暂估价'

         else

          '正式价'

       end price_type

       , p.start_date as 开始日期,

       p.end_date as 结束日期

  from srm_purchase_price p, item i, vendor v, uom u

 where p.item_id = i.item_id

   and i.uom_id = u.uom_id

   and p.vendor_id = v.vendor_id

   and p.price_status = 2 and is_referenced <>'2'   and         i.item_code='710201120056'

但这个不是最终想要的数据,我想要710201120056这个物料最新的供应商单价,他们有2个供应商,我只需显示各个供应商的最近的单价就可以了,即显示第一行和最后一行,这个如何操作。

软件.png

FineReport 1104845 发布于 2021-5-19 15:18 (编辑于 2021-5-19 15:21)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
xiaomingyiLv6中级互助
发布于2021-5-19 15:29(编辑于 2021-5-19 15:29)

with as P(

【你的那一段sql】

)

select * from

(select 供应商编号,max(开始日期) as 开始日期 from P group by 供应商编号) a

left join P on (a.开始日期=P.开始日期 and a.供应商编号=P.供应商编号)

----不同数据库with as写法可能有差异

  • 1104845 1104845(提问者) 看的不是很明白
    2021-05-19 16:03 
  • xiaomingyi xiaomingyi 回复 1104845(提问者) 额,大概就是把你那段sql用with as起个别名,后续可以直接引用,然后先工具供应商分组查出最大的日期,再去关联明细的数据,with as的用法可以根据你的数据库类型百度了解下
    2021-05-19 16:08 
最佳回答
0
孤陌Lv6资深互助
发布于2021-5-19 15:27

简单的方法  可以通过 FR的数据列  日期  汇总 求最大值 和最小值 就可以拿到这2条数据了 

  • 3关注人数
  • 329浏览人数
  • 最后回答于:2021-5-19 15:29
    请选择关闭问题的原因
    确定 取消
    返回顶部