当前位置:首页 » 编程语言 » sql订单表设计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql订单表设计

发布时间: 2022-08-17 11:22:04

sql数据库 我要建订单表中的总价列,是自动生成的(由产品表的单价*订单表的数量),哪个高手能帮下

建立个触发器

create trigger Mytrg
on 订单表
for insert,update
as
begin
update 订单表 set 总计=产品表.单价*订单表.数量 where exists(select * from inserted ,产品表 where inserted.编号=订单表.编号 and inserted.编号=产品表.编号 )
end

⑵ sql数据库关系图设计

MS SQL05及以下版本可以自动生成关系图,我的08就不能。
客户名不排除姓名相同的,所以客户表(id Primary key,……)
产品名不排除产品名相同型号不同的,所以产品表(proctid primary key,……)
订单表里需要有下订单的客户和订的产品,所以需要与客户表和产品表通过外键关联。
一个客户可以在不同时段订同一个产品,所以订单id为订单表主键,做外键的字段必须是其依赖表的主键,所以订单表外键为客户id和产品proctid
订单表(订单id primary key,id foreign key references 客户表(id),proctid foreign key references 产品表(proctid),……)

你写的订单表样式可以通过视图实现 订单视图(订单id,客户名,产品名,……)

主外键设置或者编写完毕后,左边对象资源管理器,数据库下面,右键数据库关系图,生成数据库关系图

⑶ 电子商务系统的下订单sql语句怎么写

订单表生成一条订单信息,关联的订单详情表保存订单包含的商品详情,包括商品ID,价格,数量,商品上架时间戳,同时,用户订单表关联的配送地址表保存用户地址。

⑷ sql订单表怎么设计比较合理

订单主表里的总金额有没有两可,你可以不要这个字段,查询的时候直接汇总明细表的金额。当然如果考虑到查询速度,也可以要这个字段,在创建订单和修改订单时,把总金额写入到字段中。

你担心汇总明细金额时太慢,我觉得这是多余的,一张订单的明细数据能有多少呢?1万条,够多了吧?可是即使是3万条,一个“sum(金额)”的查询也是很快的。

关于怕程序运行一半出问题的事情,你可以在做程序时用事务控制一下。(事务:多条数据库写入操作的集合,特性是要么所有操作都执行成功,要么所有操作都被回滚,取消执行),这样就保证了你数据的一致性。

⑸ 这个SQL如何写

CREATE TABLE #OrderForm (
FormCode VARCHAR(20),
WebSourceUserName VARCHAR(20),
OrigOrder INT,
PostTime DATETIME,
OrderType INT
);

INSERT INTO #OrderForm
SELECT '211084349830', 'hao123mp', 0, '2011-08-12 14:40:25.200', 1;

CREATE TABLE #OrderDetail (
FormCode VARCHAR(20),
ProctCode VARCHAR(20),
ProctName VARCHAR(80),
SellPrice DECIMAL(8,2)
)

INSERT INTO #OrderDetail
SELECT '211084349830', '00274973', '百搭牛仔七分裤W032 牛仔蓝', 99.00 UNION ALL
SELECT '211084349830', '00326416', 'TIGER七分袖衬衫 浅咖色', 119.00 UNION ALL
SELECT '211084349830', '00410788', '经典迷彩短袖T恤 迷彩色', 49.00;

CREATE TABLE #ReturnsForm (
ReturnsCode VARCHAR(20),
FormCode VARCHAR(20)
);

INSERT INTO #ReturnsForm
SELECT '0303TH11081500482', '211084349830';

CREATE TABLE #ReturnsDetail( --退货详情表
ReturnsCode VARCHAR(20),
ProctCode VARCHAR(20),
ProctName VARCHAR(80),
SellPrice DECIMAL(8,2)
);

INSERT INTO #ReturnsDetail
SELECT '0303TH11081500482', '00274973', '百搭牛仔七分裤W032 牛仔蓝', 99.00 UNION ALL
SELECT '0303TH11081500482', '00326416', 'TIGER七分袖衬衫 浅咖色', 119.00;

go

With SaleOutCTE AS
(
SELECT
odf.WebSourceUserName,
odf.FormCode,
SUM(SellPrice) AS SumSellPrice
FROM
#OrderForm odf
JOIN #OrderDetail od
ON (odf.FormCode = od.FormCode)
WHERE
WebSourceUserName = 'hao123mp'
GROUP BY
odf.WebSourceUserName,
odf.FormCode
),
ReturnBackCTE AS
(
SELECT
rf.FormCode,
SUM(SellPrice) AS SumSellPrice
FROM
#ReturnsForm rf
JOIN #ReturnsDetail rd
ON (rf.ReturnsCode = rd.ReturnsCode)
WHERE
EXISTS (
SELECT 1
FROM #OrderForm odf
WHERE
rf.FormCode = odf.FormCode
AND odf.WebSourceUserName = 'hao123mp'
)
GROUP BY
rf.FormCode
)
SELECT
WebSourceUserName,
SUM(SaleOutCTE.SumSellPrice) AS 销售,
SUM(ISNULL(ReturnBackCTE.SumSellPrice, 0)) AS 退货,
SUM(SaleOutCTE.SumSellPrice)
- SUM(ISNULL(ReturnBackCTE.SumSellPrice, 0)) as 销售额
FROM
SaleOutCTE
LEFT JOIN ReturnBackCTE
ON (SaleOutCTE.FormCode = ReturnBackCTE.FormCode)
GROUP BY
WebSourceUserName
go

WebSourceUserName 销售 退货 销售额
hao123mp 267.00 218.00 49.00

(1 行受影响)

⑹ 我想用SQL创建一个表格,里面有单据号,单据日期,制单人,订单号,入库类别,该怎么写

create table orderinfo(
paperid int primary key,
paperdate date,
paperperson varchar(30),
orderid int,
category varchar(30)
)
这只是最简单的情况

⑺ ·SQL数据库创建 订单信息管理

create database 订单信息/*创建数据库*/

sp_addtype bianhao,'char(4)'
sp_addtype dianhua,'char(11)'/*两个自定数据类型*/

create table 销售人员表(销售人员编号 bianhao not null,销售人员姓名 varchar(5),销售人员地址 varchar(50),销售人员电话 dianhua) /*创建销售人员表*/

alter table 销售人员表
add primary key(销售人员编号)/*为销售人员表中的销售人员编号字段设置为 主键*/

alter table 销售人员表
alter column 销售人员姓名 varchar(6) not null /*修改销售人员中的销售人员字段 数据类型*/

create table 货品信息表(货品编号 bianhao not null primary key,货品名称 varchar(50) not null,货品单价 money not null,供应商名称 varchar(30) not null)
/*创建货品信息表*/

create table 客户信息表(客户编号 bianhao not null primary key,客户姓名 varchar(6) not null,客户地址 varchar(50) not null,客户电话 dianhua not null,客户邮编 varchar(6)not null)
/*创建客户信息表*/

create table 供应商信息表(供应商名称 varchar(50) primary key not null,供应商地址 varchar(100) not null,供应商电话 dianhua not null,供应商邮编 char(6) not null)
/*创建供应商信息表*/

create table 订单信息表(订单编号 bianhao primary key not null,销售人员编号 bianhao not null,销售人员姓名 varchar(6) not null,客户编号 bianhao not null,客户姓名 varchar(6) not null,客户地址 varchar(50) not null,
客户电话 dianhua not null,客户邮编 char(6) not null,货品名称 varchar(50) not null,货品数量 int not null,货品单价 money not null,总金额 money not null,供应商名称 varchar(50),订货日期 datetime not null,发货日期 datetime)
/*创建订单信息表*/

create rule 编号 as @x like'[0-9][0-9][0-9][0-9]'
create rule 号码 as @x like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
create rule 邮编 as @x like'[0-9][0-9][0-9][0-9][0-9][0-9]'
/*创建三个规则 分别对应 客户编号,货品编号,销售人员编号;销售人员电话号码,客户电话号码,供应商电话号;销售人员邮编,客户邮编,供应商邮编*/

sp_bindrule '编号','销售人员表.销售人员编号'
sp_bindrule '号码','销售人员表.销售人员电话'
/*绑定规则*/
sp_bindrule '编号','客户信息表.客户编号'
sp_bindrule '号码','客户信息表.客户电话'
sp_bindrule '邮编','客户信息表.客户邮编'
/*绑定规则*/
sp_bindrule '号码','供应商信息表.供应商电话'
sp_bindrule '邮编','供应商信息表.供应商邮编'
/*绑定规则*/

⑻ 在数据库中利用SQL语言建立“客户表”、“货品表”和“订单表”,表结构如下:

CREATE TABLE
表名_客户表

列名1 类型 是否为空,
列名2 类型 是否为空,
列名3 类型 是否为空


例如:
Create table 客户表

姓名 char(16) NOT NULL,
电话 char(11) NOT NULL,
)

注意:在建表前先要选择数据库,

⑼ SQL中如何实现每个采购订单分别采购哪些物料的汇总表

环境:Oracle 11g

SELECT *
FROM (SELECT WLBM, CGDH, CGSL FROM TEST)
PIVOT(SUM(CGSL)
FOR CGDH IN('P001' P001,
'P002' P002,
'P003' P003,
'P004' P004)
)
ORDER BY WLBM
--------------------------------------------------------------------------------------

CREATE TABLE TEST (cgdh VARCHAR2(10),wlbm VARCHAR2(10),cgsl INT);

insert into test (cgdh,wlbm,cgsl) values('P001','A0027',20);
insert into test (cgdh,wlbm,cgsl) values('P001','A0018',80);
insert into test (cgdh,wlbm,cgsl) values('P001','A0018',300);
insert into test (cgdh,wlbm,cgsl) values('P001','A0024',20);
insert into test (cgdh,wlbm,cgsl) values('P001','A0019',80);
insert into test (cgdh,wlbm,cgsl) values('P001','A0034',40);
insert into test (cgdh,wlbm,cgsl) values('P001','A0026',20);
insert into test (cgdh,wlbm,cgsl) values('P001','A0009',650);
insert into test (cgdh,wlbm,cgsl) values('P001','A0004',560);
insert into test (cgdh,wlbm,cgsl) values('P002','A0026',20);
insert into test (cgdh,wlbm,cgsl) values('P002','A0009',650);
insert into test (cgdh,wlbm,cgsl) values('P002','A0004',560);
insert into test (cgdh,wlbm,cgsl) values('P002','A0015',240);
insert into test (cgdh,wlbm,cgsl) values('P002','A0002',90);
insert into test (cgdh,wlbm,cgsl) values('P002','A0005',1500);
insert into test (cgdh,wlbm,cgsl) values('P003','A0002',90);
insert into test (cgdh,wlbm,cgsl) values('P003','A0005',1500);
insert into test (cgdh,wlbm,cgsl) values('P003','A0007',20);
insert into test (cgdh,wlbm,cgsl) values('P003','A0005',80);
insert into test (cgdh,wlbm,cgsl) values('P003','A0006',60);
insert into test (cgdh,wlbm,cgsl) values('P003','A0008',20);
insert into test (cgdh,wlbm,cgsl) values('P003','A0036',100);
insert into test (cgdh,wlbm,cgsl) values('P004','A0026',20);
insert into test (cgdh,wlbm,cgsl) values('P004','A0009',650);
insert into test (cgdh,wlbm,cgsl) values('P004','A0004',560);
insert into test (cgdh,wlbm,cgsl) values('P004','A0015',240);
insert into test (cgdh,wlbm,cgsl) values('P004','A0002',90);
insert into test (cgdh,wlbm,cgsl) values('P004','A0005',1500);
insert into test (cgdh,wlbm,cgsl) values('P004','A0007',20);
insert into test (cgdh,wlbm,cgsl) values('P004','A0005',80);

⑽ SQL里 建立产品与订单的关联. 怎么建立同一个DB里两个不同表的关联

你的意思是建立外键吧。只有在产品表中存在的id,才能出现在订单表的产品id中出现,是这个意思吧。那就建立一个外键就行了。具体怎么建立外键,网上太多了,我就不再写了。
订单总要知道是发的什么货吧?连发什么货都不知道这叫什么订单?