怎么写该语句

sql_server_2000 2006-01-04 08:39:06
比如有两个表:一个是记录到货信息。一个是销售信息
到货信息其中有两行:一行记录A商品某次到售100个,一行记录A商品某次到售180个
销售信息其中有两行:一行记录A商品某次销售100个,一行记录A商品某次销售50个
当然信息表中商品的种类是很多的
怎样统计该商品的剩余数量,把数据填充进dataset中的一个表
并在DataGrid中显示
用vn.net语句写
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnny_mcoc 2006-01-04
  • 打赏
  • 举报
回复
把ds定义为datatable 再da.Fill(ds)
sql_server_2000 2006-01-04
  • 打赏
  • 举报
回复
Dim cn As New SqlConnection
cn.ConnectionString = "server=(local);database=Northwind;integrated security=sspi"
cn.Open()
Dim da As New SqlDataAdapter("select jiaocai.课本名称 as 课本名称,jiaocai.进库数量-table12.领取数量 as 剩余数量 from (select 课本名称,sum(进库数量) as 数量 from jiaocai group by 课本ID)jiaocai inner join (select 书名,sum(领取数量) as 数量 from table12 group by 课本ID) table12 on jiaocai.课本ID =table12.课本ID", cn)
ds = New DataSet
da.Fill(ds)
dt = ds.Tables(0)
DataGrid1.DataSource = dt
哪里错了
运行时提示“ da.Fill(ds)”错误
HAVENT 2006-01-04
  • 打赏
  • 举报
回复
支持楼上,上面的SQL语句可以了,就是一个多表查询而已

统计的话等填充后统计算了,死办法就是循环每行相加
kjq_vb 2006-01-04
  • 打赏
  • 举报
回复
更正一下上面的:
SELECT C.货物名,SUM(C.数量) AS 数量 FROM (
SELECT 货物名,到货数量 AS 数量 FROM A
UNION
SELECT -货物名,销售数量 AS 数量 FROM B
) C
GROUP BY C.货物名
或者
select a.货物名 as 货物名,a.数量-b.数量 as 剩余数量 from (select id ,货物名,sum(数量) as 数量 from a group by 货物名)a inner join (select id ,货物名,sum(数量) as 数量 from b group by 货物名) b on a.id=b.id
mw248 2006-01-04
  • 打赏
  • 举报
回复
上面忘了还要申明变量@sum1和@sum2
mw248 2006-01-04
  • 打赏
  • 举报
回复
declare @sql varchar(400)

set @sql=N'select @sum1=sum(到售) from 表 条件'
exec sp_executesql @sql,N'@sum1 int output',@sum1 output

set @sql=N'select @sum2=sum(销售) from 表 条件'
exec sp_executesql @sql,N'@sum2 int output',@sum2 output

剩余数量 = @sum1 - @sum2
syeerzy 2006-01-04
  • 打赏
  • 举报
回复
没有表结构都可以写出Sql语句的???亏你名字叫“sql_server_2000”。。。。

假设到货信息为表A(id,货物名,到货数量),另一个是表B(id,货物名,销售数量)

SELECT C.货物名,SUM(C.数量) AS 数量 FROM (
SELECT 货物名,到货数量 AS 数量 FROM A
UNION
SELECT 货物名,销售数量 AS 数量 FROM B
) C
GROUP BY C.货物名

填充DataSet是基本操作,几乎每个书都有,楼主自便。
kjq_vb 2006-01-04
  • 打赏
  • 举报
回复
不好意思,更正下:
select a.货物名 as 货物名,a.数量-b.数量 as 剩余数量 from (select id ,货物名,sum(数量) as 数量 from a group by 货物名,id)a inner join (select id ,货物名,sum(数量) as 数量 from b group by 货物名,id) b on a.id=b.id
于是你的应该改为:
select jiaocai.课本名称 as 课本名称,jiaocai.进库数量-table12.领取数量 as 剩余数量 from (select 课本id,课本名称,sum(进库数量) as 数量 from jiaocai group by 课本ID,课本名称)jiaocai inner join (select 课本id,sum(领取数量) as 数量 from table12 group by 课本ID) table12 on jiaocai.课本ID =table12.课本ID

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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