2017-09-27 45 views
-5

我的小組正在學習SQL,並且我們已經制作了一些表格,並且爲某個任務做了一些查詢。來自大學學生的基本SQL任務

分配是:定義顯示每個訂單的客戶,訂單和總金額的視圖。

這裏是我們嘗試的一個例子(不起作用)。

create view vetsje as 
select cus_lname, cus_fname, cus_email, orders.order_id, order_status, 
count(ol_quantity) * prod_price as total_price 
from customer 
inner join orders on customer.cus_id = orders.cus_id 
inner join orderline on orders.order_id = orderline.order_id 
inner join product on orderline.prod_id = product.prod_id 
group by order_id; 

這裏是我們的表:

create table if not exists customer (
    cus_id int(5) not null auto_increment, 
    cus_lname varchar(30) not null, 
    cus_fname varchar(30) not null, 
    cus_pnumber int(12), 
    cus_address varchar(50) not null, 
    cus_email varchar(50), 
    constraint customer_pk primary key (cus_id) 
); 

create table if not exists orders (
    order_id int(5) not null auto_increment, 
    order_date date, 
    order_status boolean default false, 
    cus_id int(4) not null, 
    foreign key (cus_id) references customer(cus_id), 
    constraint order_pk primary key (order_id) 
); 

create table if not exists product (
    prod_id varchar(10) not null, 
    prod_name varchar(20), 
    prod_price int(10), 
    constraint product_pk primary key (prod_id) 
); 

create table if not exists orderline (
    order_id int(5) not null, 
    prod_id varchar(10) not null, 
    ol_quantity int(10), 
    foreign key (order_id) references orders(order_id), 
    foreign key (prod_id) references product(prod_id), 
    constraint orderLine_pks primary key (order_id,prod_id) 
); 
+0

你有沒有嘗試加入? –

+0

你能更具體地瞭解什麼是行不通的?是否有錯誤信息是結果不正確(如果是的話,具體是什麼錯誤?) – xQbert

+2

「不工作」不是問題描述。請添加預期的/實際的輸出和錯誤消息。提示:如果使用聚合函數(sum,max avg等)和「group by」,則所有選定的屬性必須位於「group by」或「聚合函數」中。 – HoneyBadger

回答

0

從看它沒有它看起來像計算和組由誤差將是你的問題,試試這個:

SELECT cus_lname, 
     cus_fname, 
     cus_email, 
     orders.order_id, 
     order_status, 
     ((COUNT(ol_quantity)) * prod_price) AS total_price 
FROM customer 
    INNER JOIN orders ON customer.cus_id = orders.cus_id 
    INNER JOIN orderline ON orders.order_id = orderline.order_id 
    INNER JOIN product ON orderline.prod_id = product.prod_id 
GROUP BY cus_lname, 
     cus_fname, 
     cus_email, 
     orders.order_id, 
     order_status; 
+0

不要爲他們做人的功課!你認爲你在幫助他們,但你不是。 –

+0

@JohnConde無論如何,這可能不會幫助他們。這個問題不在羣裏。 – xQbert

0

感謝您的幫助和 感謝xQbert爲我解決了這個問題。

更改

count(ol_quantity) * prod_price 

sum(ol_Quantity * prod_Price) 

解決它不添加數量和價格的權利

很抱歉的壞語法的問題,但我從一個英語不是講國家。