帮写一个简单的SQL - MS-SQL Server / 应用实例
表结构如下:
入出库 (值为:入库,出库)
客户名称
产品品名
交货数量
登记日期
要检索出: 客户名称,产品品名,前日结存数量(登记日期前一天以前的入库的交货数量合计-出库的交货数量合计),本日入库数量(登记日期那天的入库数量合计),本日出库数量(登记日期那天的出库数量合计),本日结存数量(前日结存数量+本日入库数量-本日出库数量)
检索条件:客户名称,产品品名,登记日期
SQL code:
select 客户名称,产品品名,
前日结存数量 =(select sum(case when 入出库='入库' then 交货数量 else 0 end), -sum(case when 入出库='出库' then 交货数量 else 0 end) from tb where 客户名称 = 'A' and 产品品名 = 'A01' and 登记日期<'2010-05-20'),--(登记日期前一天以前的入库的交货数量合计-出库的交货数量合计),
本日入库数量 = sum(case when 入出库='入库' then 交货数量 else 0 end),--(登记日期那天的入库数量合计),
本日出库数量 = sum(case when 入出库='出库' then 交货数量 else 0 end),--(登记日期那天的出库数量合计),
本日结存数量 = sum(case when 入出库='入库' then 交货数量 else 0 end) - sum(case when 入出库='出库' then 交货数量 else 0 end) --(前日结存数量+本日入库数量-本日出库数量)
from tb
where 客户名称 = 'A' and 产品品名 = 'A01' and 登记日期='2010-05-20'
group by 客户名称,产品品名,登记日期
xys_777:
你好。
如果条件只有:登记日期
要求:检索结果的每一条的:客户名称,产品品名不能重怎么改呀?
xys_777:
相关问答:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jas ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
有这样一条SQL
Select Get_Costtaxrate(col1), Get_Tcostvalue(col1) from a
其中Get_Costtaxrate、Get_Tcostvalue都是函数,这两个函数里面都是查找一个大表,Get_Tcostvalue还需要调用Get_C ......
将一个查询语句赋给一个变量,如下:
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
怎么样才能执行它呢?
请高手,仁兄,侠姐帮帮忙啊
多谢,可以啦,高手啊
直接执行就行了
exec ......
表数据
COL1 COL2 COL2 COL4 COL5
----------------------------------------------------------------------------------------------
2010-05-05 00:00 ......