SQL语句在SQL Server中创建表时如何引用其他表的字段来进行计算

例如创建表Products后createtableProducts(pidchar(3)primarykey,pricedecimal(18,2),)再创建另一个表Ord... 例如创建表Products后 create table Products ( pid char(3) primary key, price decimal(18,2), ) 再创建另一个表Orders时 create table Orders ( ord_no char(4) primary key, qty int, amount as ([price]*[qty]) ) amount 字段是计算字段,怎样引用Products表的price字段来成功建表 展开
 我来答
帐号已注销
高粉答主

2020-02-10 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:32.7万
展开全部

1、登陆sql server

2、 单击数据库,选择要在哪个数据库创建表。

3、 新建查询按钮,进入编辑界面。

4、以创建学生表为例。

5、 将创建好的表保存,就完成了。


注意事项:

表之间的列要用英文的【逗号】隔开,表的SQL语句不区分大小写,SQL语句只能在整个编辑结束时才能用分号,也可以不用分号。

babyAn涩
推荐于2018-03-05 · 知道合伙人金融证券行家
babyAn涩
知道合伙人金融证券行家
采纳数:7678 获赞数:132044
2014年于上海市商贸旅游学校毕业,专业会计。后就读于上海市同济大学网络教育学院。

向TA提问 私信TA
展开全部

创建主键、外键关联的数据库表

创建含有计算字段的数据库表

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摆渡浮桥
推荐于2017-11-25 · TA获得超过3629个赞
知道大有可为答主
回答量:1610
采纳率:100%
帮助的人:2196万
展开全部
SQL Server的计算字段不支持引用外部表的字段。
或者你可以自定义一个函数,函数从Products检索price并返回。在计算列中引用这个函数进行计算。
假设创建了一个叫做GetPriceFromProducts的函数。
amount as (GetPriceFromProducts(ord_no) * Qty)
追问
首先感谢你的解答,再问下自定义函数是不是指创建存储过程,如若不是,自定义函数怎么写,谢谢
追答
自定义函数类似存储过程,但是不是存储过程。
语法:
CREATE FUNCTION GetProductPrice(@pid char(3))
RETURNS DECIMAL(18,2)
BEGIN
DECLARE @price DECIMAL(18,2)
SELECT @price = price FROM Products WHERE pid = @pid
RETURN @price
END

GO

创建Orders表时,引用这个函数。
貌似,你的Orders表中少了一个pid字段吧。
create table Orders ( ord_no char(4) primary key, pid char(3),
qty int, amount as (GetProductPrice(pid)*[qty]) )
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pandaloveme058
2012-11-05 · TA获得超过119个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:112万
展开全部
你需要用这个去做什么 。。。。。用数据约束不行吗 。。。。。。你在添加数据的时候这个字段的数据是([price]*[qty]) 这个样子计算出来的。 你可以创建一个约束 ,但是他的目地不是建表,而是检验amount是否合格 (amount = ([price]*[qty]) )) 外键也行啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就爱女流
2012-11-05 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:65.8万
展开全部
用select子句去试试。
amount as ((select price from Products where .....) * qty ) ;
select 子句中必须是一个单值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式