我希望你們可以幫我在SQL,因爲我是一個新手iN的SQL。我的問題是,代碼沒有給出預期的輸出,我不知道如何解決這個問題,儘管我已經通過書籍和在線資源進行搜索。我有2個表(客戶& order_status)。任務是:爲什麼我如果沒有給出預期的輸出? (mySQL)
(1) select c_id,lname,address,city,description where c_id > 3
(2) select c_id,lname,address,o_status,item_total,remarks and update description to 'black' where c_id =3
(3)if item_total > 2, select o_status,item_total. ELse select o_status,item_total,remarks,order_no and update remarks to 'set'
所以,這裏是代碼:
#drop procedure if exists usp_GetAnything;
delimiter //
create procedure usp_GetAnything()
begin
declare total int ;
select total = item_total
from order_status;
select c_id,lname,address,city,description
from customer
where c_id > 3;
select c.c_id,c.lname,c.address,o.o_status,o.item_total,o.remarks,c.description
from customer c,order_status o
where c.c_id=o.c_id;
update customer
set description = 'black'
where c_id = 3;
if (total > 2) then
select o_status,item_total,remarks
from order_status
where item_total = total;
else
select o_status,item_total,remarks,order_no
from order_status
where item_total = total;
update order_status
set remarks = 'set';
end if;
end
我期待的輸出以獲取每一行ITEM_TOTAL。如果item_total> 2,它只會選擇,否則,它會更新備註。每個c_id有不同的no。 item_total。
您使用「If」語句是錯誤的。它必須在「選擇」語句內。 – 2014-09-19 01:25:02
@KenanZahirovic item_total的變量聲明,是真的嗎? – user4053201 2014-09-19 01:54:49