有4个表
BillListDetail--订菜明细表 BillListDetail_Add--增菜表
BillListDetail_Del--删菜表 BillListDetail_Pre--赠菜表
现在要查客户最终点的菜
用sql语句或存储过程应该怎么写?

解决方案 »

  1.   

    4个表结构完全相同
    就是求最终的点菜结果
    如 开始点菜 a 2份,b2份, c 1份
            增菜  b 1份, c 1份
            删菜  a 1份,b 1份
            赠菜  d 1份
    最终:a 1份,b 2份,c 2份,d 1份
    表结构

    I_ID --自动量
    S_BLID--账单号
    I_CBID--菜ID号
    I_Quantity--数量
    I_Price--价格
    D_UpdateTime--更新时间
      

  2.   

    这问题也叫超难,比这业务逻辑复杂的多呢。
    这个问题和库存以及出入库一模一样,就是union all以后按菜ID号来个sum
    你可以参考一下我前2天回答的一个进仓和出仓的问题,一句sql就可以了
      

  3.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5577457
    道理一样的
      

  4.   

    回楼上的一个标志位也行 看个人喜好~ 我喜欢用 bool型 你们老板 会不会设计数据结构!  最基本的三范式
      

  5.   

    imwjb(回帖前先看看楼主有没有结贴的习惯……) 
    你说的有道理,谢谢
    今天算是长见识了,再问下
    select a.type,a.color ,sum(number) 'number'
    from
    (
    select type,color,number from Instorage
    union all
    select type,color,-number 'number' from OutStorage
    ) a
    group by type,color你这里sum(number) 'number' 是什么意思呀,小弟基础不好
      

  6.   

    number是列名,统计number这一列的value总值。
      

  7.   

    单引号里面的
    'number'
    不懂这样是什么是什么意思