SQL简单问题……

kyle_huang kyle_huang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟刚学SQL,很多地方不明白,求前辈支支招,谢谢了。

写了个存储过程,如下:
-------------------------------------------------------------------
if object_id('test') is not null --一二句判断存储过程是否存在
drop procedure test
go --批处理,上下批有关系的时候go不能省略
create procedure test --创建存储过程
@ID varchar(50) --输入
as
select '商品ID' = d_Goods.Id, '商品PersonCode' = d_Goods.PersonCode, '商品FullName' = d_Goods.FullName,
'仓库ID' = d_Stock.ID, '仓库PersonCode' = d_Stock.PerSonCode, '仓库FullName' = d_Stock.FullName,
'库存数量' = sum(d_StockGoods.Num), '库存金额' = sum(d_StockGoods.Amount)
from D_Stock inner join d_StockGoods on d_StockGoods.sId = D_Stock.Id
inner join d_Goods on d_StockGoods.gID = d_Goods.ID and d_Goods.Id like @ID+'%'
group by d_Goods.Id, d_Goods.PersonCode, d_Goods.FullName, d_Stock.ID, d_Stock.PerSonCode, d_Stock.FullName
go
execute test '00001'
-------------------------------------------------------------------
得到的效果是:(传入参数:商品ID,返回数据:该商品在各个仓库中的分布情况)

商品ID 商品PersonCode 商品FullName 仓库ID 仓库PersonCode 仓库FullName 库存数量 库存金额
-------------------------------------------------------------------------------------------------
0000100001 KB00001 康柏 00001 00001 caigou 8 8
0000100001 KB00001 康柏 00002 00002 qita 100 1000
0000100002 HP00002 惠普001 00002 00002 qita 10 80
-------------------------------------------------------------------------------------------------
但是,这不是我想要的效果,我想要的是:传入参数ID 00001,得到的应该是:

商品ID 商品PersonCode 商品FullName 仓库ID 仓库PersonCode 仓库FullName 库存数量 库存金额
-------------------------------------------------------------------------------------------------
00001 HP00001 惠普 00001 00001 caigou 8 8

(-----接着上面的----) 仓库ID 仓库PersonCode 仓库FullName 库存数量 库存金额
-----------------------------------------------------
00002 00002 qita 110 1080
-----------------------------------------------------
-------------------------------分割线---------------------------------------

00001与0000100001、0000100002的关系是(有个pID,0000100001的pID是00001),也就是我输入00001的时候,出现是上面的。不知道我说清楚没有,或者我上面的SQL语句有问题么。

求前辈帮忙,在此谢。
...全文

相关推荐

简单的sql注入问题

** sql注入问题:sql的特殊关键字与字符串拼接。会造成安全性的问题 1输入名随便,输入密码:a’ or ‘a’=’a sql:select* from user where username=‘123’ and password=‘a’ or ‘a’=‘a’ ** // 1.获取链接 conn=JDBCUtils.getConnection(); //2.定义语句的SQL sql=select* from user where username='+username+' and password='+password+';

weixin_38626943

sql的简单培训指南

目标 对象:适合所有与数据库应用相关的人员。 内容:1.Sql语句的基础知识。    2.Sql的基础优化规则。    3.日常问题的sql解决方法。    4.常见的sql错误写法。

mahue

一个简单的SQL 行列转换语句

一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 30 20 10 1 这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题。下面我结合这个简单的例子来实现行列转换。 下面3张表 代码如下: if exists ( select * from sysobjects where id = object_id ( ‘ EmployeeType ‘ ) and type = ‘ u ‘ ) dro

weixin_38614417

如何解决SQL Server日志满问题

本文先介绍了一种复杂的方法压缩日志及数据库文件。另外还提供一种更简单的方法解决SQL Server日志满问题。

weixin_38686557

关于在Java代码中写Sql语句需要注意的问题

近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题。   先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错。   String str = insert into XXX(a,b,c) values ('a.getA()','a.getB()','a.getC()');;   研究了半天发现应该是连接字符串问题,第一次修改过后将赋值字段前后加“+”号来完成sql语句。改正后代码如下   String str = insert into XXX(a,b,c) values ('+a.getA()

weixin_38746951
评论 7
收藏 已收藏
分享
返回顶部
kyle_huang
MS-SQL Server 34,876 成员 254,635 内容