这个SQL语句怎么写啊???本人很菜麻烦大家了

ballnan 2005-04-29 09:30:04
表Instore 表Outstore
材料名称 规格 颜色 进货数量 材料名称 规格 颜色 出库数量
铜版纸 A4 红色 100 牛皮纸 A4 蓝色 50
牛皮纸 A4 蓝色 100 书写纸 A6 白色 120
铜版纸 A6 白色 100 铜版纸 A4 红色 80
书写纸 A6 白色 100
书写纸 A4 白色 100

我现在写查看库存量
想得到这样的一个表
材料名称 规格 颜色 剩余数量
铜版纸 A4 红色 20
牛皮纸 A4 蓝色 50
铜版纸 A6 白色 100
书写纸 A6 白色 -20
书写纸 A4 白色 100
...全文
230 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
mabuchi 2005-04-29
  • 打赏
  • 举报
回复
学习
redwj 2005-04-29
  • 打赏
  • 举报
回复
上帖的方法好
zjcxc 2005-04-29
  • 打赏
  • 举报
回复
--也可以这样写
select 材料名称,规格,颜色,剩余数量=sum(数量)
from(
select 材料名称,规格,颜色,数量=进货数量 from Instore
union all
select 材料名称,规格,颜色,数量=-出库数量 from Outstore
)a group by 材料名称,规格,颜色
ballnan 2005-04-29
  • 打赏
  • 举报
回复
表Instore 里有一个表InstoreID 表Outstore里有一个OutstoreID字段
zjcxc 2005-04-29
  • 打赏
  • 举报
回复
看错了,楼主要的直接是库存,不是先进先出.

前面的方法可以了.
梅青松 2005-04-29
  • 打赏
  • 举报
回复
select a.材料名称 a.规格 a.颜色 剩余数量 =sum( a.进货数量 - ISNULL(b.出库数量,0))
from Instore a left join Outstore b
on a.材料名称 = b.材料名称
and a.规格 = b.规格
and a.颜色 = b.颜色
group by a.材料名称 a.规格 a.颜色
zjcxc 2005-04-29
  • 打赏
  • 举报
回复
你用什么字段来确定记录顺序?
ballnan 2005-04-29
  • 打赏
  • 举报
回复
有确定记录的顺序的
上面的提问还存在点问题现在重新发出
表Instore 表Outstore
材料名称 规格 颜色 进货数量 材料名称 规格 颜色 出库数量
铜版纸 A4 红色 100 牛皮纸 A4 蓝色 50
牛皮纸 A4 蓝色 100 书写纸 A6 白色 120
铜版纸 A6 白色 100 铜版纸 A4 红色 80
书写纸 A6 白色 100
书写纸 A4 白色 100
牛皮纸 A4 蓝色 100


我现在写查看库存量
想得到这样的一个表
材料名称 规格 颜色 剩余数量
铜版纸 A4 红色 20
牛皮纸 A4 蓝色 150
铜版纸 A6 白色 100
书写纸 A6 白色 -20
书写纸 A4 白色 100
631799 2005-04-29
  • 打赏
  • 举报
回复

select a.材料名称,a.规格,a.颜色,剩余数量=a.进货数量-b.出库数量
from 表Instore a left join 表Outstore b on a.材料名称=b.材料名称 and a.规格=b.规格 and a.颜色=b.颜色
梅青松 2005-04-29
  • 打赏
  • 举报
回复
select a.材料名称, a.规格, a.颜色,
剩余数量 = a.进货数量 - ISNULL(b.出库数量,0)
from Instore a left join Outstore b
on a.材料名称 = b.材料名称
and a.规格 = b.规格
and a.颜色 = b.颜色
zjcxc 2005-04-29
  • 打赏
  • 举报
回复
先进先出? 表中没有确定记录顺序的字段么?
梅青松 2005-04-29
  • 打赏
  • 举报
回复
select a.材料名称 a.规格 a.颜色 剩余数量 = a.进货数量 - ISNULL(b.出库数量,0)
from Instore a left join Outstore b
on a.材料名称 = b.材料名称
and a.规格 = b.规格
and a.颜色 = b.颜色
ballnan 2005-04-29
  • 打赏
  • 举报
回复
我想再问一下当我要取剩余数量〉0的时候怎么写啊??
ballnan 2005-04-29
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3975/3975225.xml?temp=.9824182
这是同一个问题,过去拣分吧zjcxc(邹建)这位大哥帮过我解决了不少问题了谢谢你哦
chenqianlong 2005-04-29
  • 打赏
  • 举报
回复
回复人: s1ihome(把握住今天) ( ) 信誉:100
的方法可以啊。
chenqianlong 2005-04-29
  • 打赏
  • 举报
回复
数量=0-出库数量
ballnan 2005-04-29
  • 打赏
  • 举报
回复
zjcxc(邹建)
服务器: 消息 403,级别 16,状态 1,行 1
对数据类型而言运算符无效。运算符为 minus,类型为 varchar。

应该是数量=-出库数量哪个-号的问题
怎么办呀??
zjcxc 2005-04-29
  • 打赏
  • 举报
回复
--也可以这样写
select 材料名称,规格,颜色,剩余数量=sum(cast(数量 as decimal)) --那就转换一下.
from(
select 材料名称,规格,颜色,数量=进货数量 from Instore
union all
select 材料名称,规格,颜色,数量=-出库数量 from Outstore
)a group by 材料名称,规格,颜色
梅青松 2005-04-29
  • 打赏
  • 举报
回复
Csat(字段名 as int)
ballnan 2005-04-29
  • 打赏
  • 举报
回复
sum or average aggregate 运算不能以 varchar 数据类型作为参数。

这个错误怎么改阿??
加载更多回复(1)

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧