當前位置:首頁 » 編程語言 » 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中出現,是這個意思吧。那就建立一個外鍵就行了。具體怎麼建立外鍵,網上太多了,我就不再寫了。
訂單總要知道是發的什麼貨吧?連發什麼貨都不知道這叫什麼訂單?