求一SQL语句,数据库如下:
卡片名称 卡片类型 起始卡号 终止卡号 卡片流向 数量
消费卡 有磁卡 00001 00099 入库 100
消费卡 有磁卡 00001 00099 入库 200
消费卡 无磁卡 00100 00199 入库 150
消费卡 有磁卡 00001 00099 入库 100
消费卡 有磁卡 00001 00099 出库 220写一SQL语句,求出库存量,入库数量-出库数量,这个怎么写,最后的结果这样的
卡片名称 卡片类型 起始卡号 终止卡号 卡片流向 库存量
消费卡 有磁卡 00001 00099 入库 180
消费卡 无磁卡 00100 00199 入库 150
卡片名称 卡片类型 起始卡号 终止卡号 卡片流向 数量
消费卡 有磁卡 00001 00099 入库 100
消费卡 有磁卡 00001 00099 入库 200
消费卡 无磁卡 00100 00199 入库 150
消费卡 有磁卡 00001 00099 入库 100
消费卡 有磁卡 00001 00099 出库 220写一SQL语句,求出库存量,入库数量-出库数量,这个怎么写,最后的结果这样的
卡片名称 卡片类型 起始卡号 终止卡号 卡片流向 库存量
消费卡 有磁卡 00001 00099 入库 180
消费卡 无磁卡 00100 00199 入库 150
SELECT *,CASE WHEN 卡片流向='入库' THEN 1 ELSE -1 END T FROM table
) A
GROUP BY 卡片名称,卡片类型,起始卡号,终止卡号
select 卡片名称,卡片类型,起始卡号,终止卡号,case when 库存量<0 then '出库' else '入库' end as 卡片流向,库存量 from
(select 卡片名称,卡片类型,起始卡号,终止卡号,sum(case when 卡片流向='入库' then 数量 else -数量 end) as 库存量 from [table] group by 卡片名称,卡片类型,起始卡号,终止卡号)t1
select 卡片名称,卡片类型,起始卡号,终止卡号,
case when 库存量<0 then '出库' else '入库' end as 卡片流向,库存量
from
(select 卡片名称,卡片类型,起始卡号,终止卡号,
sum(case when 卡片流向='入库' then 数量 else -数量 end) as 库存量
from [table] group by 卡片名称,卡片类型,起始卡号,终止卡号)t1
insert #a
select '消费卡' ,'有磁卡', '00001' ,'00099', '入库' ,'100' union all
select'消费卡', '有磁卡', '00001', '00099', '入库', '200'union all
select'消费卡' ,'无磁卡', '00100', '00199', '入库', '150'union all
select'消费卡' ,'有磁卡', '00001', '00099', '入库', '100'union all
select'消费卡' ,'有磁卡', '00001', '00099', '出库', '220'select a,b,c,d,sum(case when e = '入库' then f else -f end) from #a group by a,b,c,d/*
消费卡 无磁卡 00100 00199 150
消费卡 有磁卡 00001 00099 180
*/
select 卡片名称,卡片类型,起始卡号,终止卡号,'入库' as 卡片流向 ,sum(case when 卡片流向 ='入库' then 数量 else -数量 end) as 库存量
from tb
group by 卡片名称,卡片类型,起始卡号,终止卡号
order by 起始卡号
select [card_name],[card_type],[card_start],[card_end],SUM(t*card_number) 库存量 from(select *,case when card_flow='入库' then 1 else -1 end T from [Esa_Web_Opr_New].[dbo].[cardManage])A
group by card_name,card_type,card_start,card_end照3楼改的,完全正确,其他的没试,我想把库存量存到变量里怎么办?
--sqlstatement select a.卡片名称 ,a.卡片类型 ,a.起始卡号 a.终止卡号, a.卡片流向,sum(a.sum) 库存量
from
( select 卡片类型,卡片流向,
case when inout='出库' then
( select sum*-1 from cstest where inout='³ö¿â') else sum end sum
from cstest) a group by a.卡片类型
from
( select 卡片类型,卡片流向,
case when inout='出库' then
( select sum*-1 from cstest where inout='出库') else sum end sum
from cstest) a group by a.卡片类型
一:select * into backup from 表
二:update backup set 数量=-数量 where 卡向流向=出库
三:select 卡片名称 ,卡片类型, 起始卡号, 终止卡号, 卡片流向,sum(数量)
from backup group by 卡片名称 ,卡片类型, 起始卡号, 终止卡号, 卡片流向
SELECT 卡片名称 ,卡片类型 ,起始卡号 ,终止卡号 ,卡片流向,
SUM(CASE WHEN 卡片流向 = '出库' THEN -数量 ELSE 数量)
FROM TB
grou……
以上是写入存储的过程,如果实现第一种方式 建议还是采用三楼的语句,祝成功!
靠!you must be kidding me!
(
id int identity(1,1)primary key,
卡片名称 varchar(30),
卡片类型 varchar(30),
起始卡号 varchar(30),
终止卡号 varchar(30),
卡片流向 varchar(30),
数量 int,
库存 int
)
insert into #temptb (卡片名称,卡片类型,起始卡号,
终止卡号,卡片流向,数量) values('消费卡','有磁卡','00001','00099','入库',200)
insert into #temptb (卡片名称,卡片类型,起始卡号,
终止卡号,卡片流向,数量) values('消费卡','无磁卡','00100','00199','入库',150)
insert into #temptb (卡片名称,卡片类型,起始卡号,
终止卡号,卡片流向,数量) values('消费卡','有磁卡','00001','00099','入库',100)
insert into #temptb (卡片名称,卡片类型,起始卡号,
终止卡号,卡片流向,数量) values('消费卡','有磁卡','00001','00099','出库',220)update #temptb set 库存=
(case when 卡片流向='入库' then 数量
when 卡片流向='出库' then 数量*(-1) end )select 卡片名称,卡片类型,起始卡号,终止卡号,sum(库存) from #temptb
group by 卡片名称,卡片类型,起始卡号,终止卡号
select [card_name],[card_type],[card_start],[card_end],SUM(t*card_number) kc into #f from(select *,case when card_flow='入库' then 1 else -1 end T from cardManage.dbo.cardManage)A
group by card_name,card_type,card_start,card_end把查询结果存入临时变量KC中,然后对KC进行操作
SQL SERVER中:select [card_name],[card_type],[card_start],[card_end],SUM(t*card_number) Invertory into #temp from(select *,case when card_flow='入库' then 1 else -1 end T from [Esa_Web_Opr_New].[dbo].[cardManage])A group by card_name,card_type,card_start,card_end,mer_no,set_no程序中sql = "select [card_name],[card_type],[card_start],[card_end],SUM(t*card_number) Invertory into #temp from(select *,case when card_flow='鍏ュ簱' then 1 else -1 end T from [Esa_Web_Opr_New].[dbo].[cardManage])A group by card_name,card_type,card_start,card_end,mer_no,set_no"
rs.open(sql, conn, 3, 1)
sql = "select [card_name],[card_type],[card_start],[card_end],SUM(t*card_number) Invertory into #temp from(select *,case when card_flow='入库' then 1 else -1 end T from [Esa_Web_Opr_New].[dbo].[cardManage])A group by card_name,card_type,card_start,card_end,mer_no,set_no"这个语句是把查询结果存放在临时表#temp中,下次查询时是不是要先删除临时表,如果删除的话,怎样判断表是否存在?