Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 利用SQL语句计算库存
【标  题】:利用SQL语句计算库存
【关键字】:SQL
【来  源】:http://blog.csdn.net/striveman/archive/2007/01/06/1475800.aspx

利用SQL语句计算库存

Your Ad Here 计算库存量:
SELECT TOP 100 PERCENT dbo.Office_In.InCode, dbo.Office_In.InDate, 
      dbo.Office_In.ComCode, dbo.Office_In.TypeCode, dbo.Office_In.OName, 
      dbo.Office_In.Spec, dbo.Office_In.Unit, dbo.Office_In.Qty, dbo.Office_In.Price, 
      dbo.Office_In.Provider, dbo.Office_In.Master, dbo.Office_In.Note, 
      dbo.Company.ComName, dbo.Office_Type.TypeName, dbo.Office_In.Qty 
-
          (
SELECT isnull(SUM(Office_Out.Qty), 0)
         
FROM Office_Out
         
WHERE Office_In.InCode = Office_Out.InCode) AS Stock,
          (
SELECT isnull(SUM(office_out.qty), 0)
         
FROM office_out
         
WHERE office_in.inCode = office_out.incode) AS outQty
FROM dbo.Office_Type INNER JOIN
      dbo.Office_In 
ON 
      dbo.Office_Type.TypeCode 
= dbo.Office_In.TypeCode LEFT OUTER JOIN
      dbo.Company 
ON dbo.Office_In.ComCode = dbo.Company.ComCode
ORDER BY dbo.Company.ComName, dbo.Office_Type.TypeName

        在这个SQL语句,主要是利用isnull函数,将从数据库中查询到的为null的值,转化为0,之后利用减法,将库存计算出来。
附:结构表

/****** 对象:表 dbo.Office_In ******/
/****** 说明:办公用品入库表 ******/
If Exists (Select * From sysobjects where id = object_id('dbo.Office_In'))
Drop Table dbo.Office_In
GO
Create Table Office_In(
    InCode 
varchar(12Not Null Primary key,--入库编号
    InDate smalldatetime Not Null,        --入库日期
    ComCode varchar(4Not Null,        --公司单位代码
    TypeCode varchar(4Not Null,        --种类代码
    OName varchar(50Not Null,        --办公用品名称
    Spec varchar(50Null,            --规格
    Unit varchar(10Null,            --单位
    Qty Int Not Null,            --数量
    Price Numeric(8,2Not Null,        --单价
    Provider varchar(50Null,        --购买单位
    Master varchar(20Not Null,        --经办人
    Note Varchar(100Null            --备注
)
GO
ALTER TABLE dbo.Office_In ADD 
    
CONSTRAINT FK_Office_In_ComPany FOREIGN KEY 
    (
        ComCode
    ) 
REFERENCES dbo.Company (
        ComCode
    ),
    
CONSTRAINT FK_Office_In_Type FOREIGN KEY 
    (
        TypeCode
    ) 
REFERENCES dbo.Office_Type (
        TypeCode
    )
GO
    

/****** 对象:表 dbo.Office_Out ******/
/****** 说明:办公用品领用表 ******/
If Exists (Select * From sysobjects where id = object_id('dbo.Office_Out'))
Drop Table dbo.Office_Out
GO
Create Table Office_Out(
    OutCode 
varchar(12Not Null Primary key,--领用编号
    ComCode varchar(4Not Null,        --公司单位代码
    InCode varchar(12Not Null,        --入库编号
    OutDate smallDatetime Not NUll,        --领用日期
    Qty Int Not Null,            --数量
    Master varchar(20Not Null,        --经办人
    Note Varchar(100Null            --备注
)
GO
ALTER TABLE dbo.Office_Out ADD 
    
CONSTRAINT FK_Office_Out_ComPany FOREIGN KEY 
    (
        ComCode
    ) 
REFERENCES dbo.Company (
        ComCode
    ),
    
CONSTRAINT FK_Office_Out_In FOREIGN KEY 
    (
        InCode
    ) 
REFERENCES dbo.Office_In (
        InCode
    )
GO
SQL语句优化技术分析:【上一篇】
SQL Server 2000 学习笔记(一):【下一篇】
【相关文章】
  • SQL语句优化技术分析
  • 查看SQL SERVER 加密存储过程,函数,触发器,视图
  • MySQL5.0的三种数据类型:DATETIME, DATE和TIMESTAMP的使用
  • MDF文件在SQL Server中的恢复技术
  • 更新库存SQL算法1.0版
  • SQLServer2000安装程序提示“有一个挂起的安装实例,请重起机器”的解决方法
  • 教你编写高质量 高性能的MySQL语法
  • 清空MS SQL数据库的日志文件
  • 关于SQL触发器的简单应用
  • SQL Server存储过程编写和优化措施
  • 【随机文章】
  • Solaris安全FAQ(3)
  • 家电供应链应该“模块化”发展
  • 透视网上邻居故障
  • 关于DAO数据库编程的几点经验
  • 嵌入式系统数据同步协议
  • VB.NET面向对象的实现(7)对象的处理
  • Sunny:tpoint4.h
  • Java RMI入门
  • Visual c++ 技术内幕 Ex21a,例子可耻di失败鸟.
  • 让你的网页活跃起来
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.