首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于求商品月均销售量的有关问题

2012-01-31 
关于求商品月均销售量的问题这里有两个表,CREATETABLELeaveStock/*出库单表*/(IDINTIDENTITY(1,1)NOTNULL,

关于求商品月均销售量的问题
这里有两个表,
CREATE   TABLE   LeaveStock     /*   出库单表   */
(
    ID                               INT   IDENTITY(1,1)               NOT   NULL,       /*   序号*/
    LeaveStock_ID         nchar(50)                               NOT   NULL,     /*   出库单编号   ,   主键,   外键   (参照   LEAVESTOCK   表   )*/
    LeaveDate                 datetime                                 NOT   NULL,     /*   出库时间   */  
    Customer_ID           nchar(50)                                 NOT   NULL,   /*   客户编号,*/
    LeaveType                 char(20)                                 NOT   NULL,   /*   出库类型, "PS "表示配送, "PF "表示批发*/
    StoreHouse_ID         INT                                           NOT   NULL,     /*   所出仓库   ,外键   (   参照   STOREHOUSE   表)*/
    ToStoreHouse_ID     INT                                           NOT   NULL,     /*   所入仓库   ,外键   (   参照   STOREHOUSE   表)*/
    Employee_ID             INT                                           NOT   NULL       /*   出库人   ,         外键   (   参照   EMPLOYEE   表)*/
    /*   仓库保管员如何来验证出库单   ??   */
)

CREATE   TABLE   LeaveStock_Detail     /*   出库单明细表   */
(  
    ID                               INT   IDENTITY(1,1)               NOT   NULL,     /*   序号*/
    LeaveStock_ID         nchar(50)                               NOT   NULL,     /*   出库单编号   ,   主键,   外键   (参照   BACKSTOCK   表   )*/  
    Product_Number       char(20)                                 NOT   NULL,     /*   所出商品编号,主键,   外键   (参照   PRODUCT   表   )   */  
    Batch                         nchar(50)                                 NOT   NULL,     /*   批号*/
    BarCode                     nchar(50)                                 NOT   NULL,     /*   条形码*/


    Quantity                   float                                       NOT   NULL,     /*   出库数量   */
    Price                         money                                       NULL               /*   出库价格   */  
)

我想通过这两个表用一个函数求出某个商品的月均销售量

月均销售量=销售总数/总销售月数

这里的销售月数为第一次发生销售的日期到现在的月数,用datediff函数可求出
datediff(month,startDate,endDate)
startDate=商品最早的出库日期

请问用一个函数的方式如何写出来,谢谢!!

[解决办法]
select Product_Number , Quantity/datediff(month,mindate,maxDate) 月均销售量 from
(
select Product_Number,min(LeaveDate) mindate,max(LeaveDate) maxDate , sum(Quantity) Quantity from
(
select a.Product_Number , b.LeaveDate ,a.Quantity from LeaveStock_Detail a,LeaveStock b where a.LeaveStock_ID = b.LeaveStock_ID
) t group by Product_Number
) m
[解决办法]
--这样?
select ld.Product_Number,sum(Quantity)/(datediff(month,min(LeaveDate),getdate()))
from LeaveStock l
join LeaveStock_Detail ld on ld.LeaveStock_ID = l.LeaveStock_ID
group by ld.Product_Number

热点排行