第一篇文章在這裏!MySQL-當它裏面的變量不存在時得到一個SUM
因此,作爲一個年輕的Padawan在SQL和數據庫一般我正在創建一個企業的數據庫來管理訂單/項目/價格等我想創建一個視圖,從3個鏈接的表{項目,價格,折扣}(見底部的表格)計算並顯示項目的總價格。作爲一項規則,折扣列不應該是零(因爲我們只在表格中要discounts
條目與實際的折扣,而不是0)
從以下條目我想要展示他們所有但我的觀點只有顯示與折扣。
insert into items (`item_id`,`item_name`, `item_quantity`) values
(102,'item1',20),
(103,'item2',20),
(404,'item3',20); # <-- It won't be shown if I do SELECT * FROM view;
insert into discounts (`item_id`,`discount`) values
(102,50),
(103,25);
insert into prices (`item_id`,`price`) values
(102,100),
(103,100),
(404,100);
這裏是我的看法:
CREATE VIEW ItemsPrice AS
SELECT
i.item_id,
i.item_name,
SUM((1-d.discount/100)*p.price*i.item_quantity)
FROM
items AS i
INNER JOIN
prices AS p ON i.item_id=p.item_id
INNER JOIN
discounts AS d ON (p.item_id=d.item_id)
GROUP BY item_id
ORDER BY total;
這裏是我的表(以防萬一我讓他們錯了):
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items` (
`item_id` int(30) NOT NULL,
`item_name` varchar(35) NOT NULL,
`item_quantity` double(25,0) ,
PRIMARY KEY (`item_id`)
);
#2=======
DROP TABLE IF EXISTS `prices`;
CREATE TABLE `prices` (
`item_id`int(30) NOT NULL,
`price` decimal(30,2) NOT NULL,
PRIMARY KEY (`item_id`),
CONSTRAINT `prices_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `items` (`item_id`)
);
#3=======
DROP TABLE IF EXISTS `discounts`;
CREATE TABLE `discounts` (
`item_id` int(30) NOT NULL,
`discount` int(3) NOT NULL,
PRIMARY KEY (`item_id`),
CONSTRAINT `discount_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `items` (`item_id`)
);
對不起,沒有提供一個架構。不知道如何製作一個。
希望我沒有浪費你的大部分時間!你是我的英雄。
精美的措辭問題,清晰,重點突出,一切必要的支持細節。你會在StackOverflow中走得更遠。 –