大家好,还是分销行业应用。
现在有门店store表,pos系统销售表pos_info表, pos销售营业日报表pos_info_report表。
销售表pos_info,营业日报表pos_info_report都有门店表store的store_id外键。
pos系统销售表pos_info表, pos销售营业日报表pos_info_report表,这两个表不关联。
pos_info, pos_info_report中都有字段销售日期business_date(精确到天)
----------
现在有一个需求1:得到该门店的最后一天的营业日报的business_date,和该门店最后一笔销售的business_date。
2:列出该门店做的最好一天的营业日报和最后一笔销售的日期不是同一天的。我们要把该门店没有录的营业日报给补上。
主要是第二个需求。。
谢谢大家。。急。。

解决方案 »

  1.   

    是啊~~~
    select *
    from sc_tt_pos_info p, sc_tt_pos_info_report r, sc_tm_store_info s
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id
      

  2.   


    select s.sc_tm_store_info_id, s.store_name_attr, p.business_date, r.business_date
    from sc_tt_pos_info p, sc_tt_pos_info_report r, sc_tm_store_info s
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id主要是要得到该门店的最后一天的营业日报的日期,该门店最后一笔销售的日期
      

  3.   

    门店表store
    pos销售数据表pos_info
    门店营业日报表pos_iofo_report
      

  4.   

    我被你折服了,没有人能理解你的需求,什么叫“做的最好一天”,依据什么来判定?
    表结构是什么形式的?就算麻烦你至少可以简化下然后把表结构的SQL脚本以及一些测试数据给我们啊
    飘了
      

  5.   


    --不知道是不是这
    select s.sc_tm_store_info_id, max(s.store_name_attr), max(p.business_date), max(r.business_date)
    from sc_tt_pos_info p, sc_tt_pos_info_report r, sc_tm_store_info s
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id
    group by s.sc_tm_store_info_id
      

  6.   

    倒~~~不好意思,自己写错字了。应该是“最后一天”。select p.sc_tm_store_info_id, max(p.business_date), r.sc_tm_store_info_id, max(r.business_date)
    from sc_tt_pos_info p, sc_tt_pos_info_report r
    where p.sc_tm_store_info_id = r.sc_tm_store_info_id
    group by p.sc_tm_store_info_id, r.sc_tm_store_info_id怎么做比较啊
      

  7.   


    select s.sc_tm_store_info_id, max(s.store_name_attr), max(p.business_date), max(r.business_date)
    from sc_tm_store_info s, sc_tt_pos_info p, sc_tt_pos_info_report r
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id
    group by s.sc_tm_store_info_id谢谢潘哥,这个sql可以了,我想问下 max(s.store_name_attr), max(p.business_date),这两个怎么做比较呢?
    也就是说我要得到最后一天的营业日报和最后一天的销售时间不同的门店
      

  8.   

    两个日期型的直接做比较啊 = 、!=、>、<
      

  9.   


    select s.sc_tm_store_info_id , max(s.store_name_attr), max(p.business_date) a, max(r.business_date) b
    from sc_tm_store_info s, sc_tt_pos_info p, sc_tt_pos_info_report r
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id
    and a <> b
    group by s.sc_tm_store_info_id这样报错啊。。b标识无效
      

  10.   


    --外层嵌套嘛,别名不能直接用:
    select sc_tm_store_info_id from(
    select s.sc_tm_store_info_id, max(s.store_name_attr), max(p.business_date) a, max(r.business_date) b
    from sc_tt_pos_info p, sc_tt_pos_info_report r, sc_tm_store_info s
    where 1=1
    and p.sc_tm_store_info_id = s.sc_tm_store_info_id
    and r.sc_tm_store_info_id = s.sc_tm_store_info_id
    group by s.sc_tm_store_info_id
    )
    where a<>b
      

  11.   


    select *
    from (
          select s.sc_tm_store_info_id , max(s.store_name_attr), max(p.business_date) a, max(r.business_date) b
          from sc_tm_store_info s, sc_tt_pos_info p, sc_tt_pos_info_report r
          where 1=1
          and p.sc_tm_store_info_id = s.sc_tm_store_info_id
          and r.sc_tm_store_info_id = s.sc_tm_store_info_id
          group by s.sc_tm_store_info_id
         )
    where a<>b难道只能这样么
      

  12.   

    谢谢潘哥哈~~~
    解决问题,sql给老大了