【发布时间】:2014-04-27 11:01:40
【问题描述】:
我试图在我的选择语句中将我的 date_column (dtcreated) 作为编号值返回,这样我就可以显示一周中每一天的总订单数以及它在哪一天(即星期一等) .) 除了它没有返回。有人可以仔细检查我的日期函数代码并告诉我我做错了什么,因为它没有返回。
create or replace function DAY_ORD_SF
(basket_id IN number)
return number
IS
basket_iID number(5);
basket_dt date;
num_of_ord number;
day_of_week number;
week_day varchar2(10);
cursor bb IS select idbasket, dtcreated from bb_basket where idbasket=basket_id;
BEGIN
open bb;
fetch bb into basket_iID, basket_dt;
SELECT COUNT(BASKET_iID), TO_DATE(BASKET_DT,'D') INTO NUM_OF_ORD, DAY_OF_WEEK FROM BB_BASKET WHERE IDBASKET=BASKET_iID;
IF DAY_OF_WEEK = 1 THEN
WEEK_DAY := 'Sunday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || week_day || ' is ' || NUM_OF_ORD || '.' );
ELSIF DAY_OF_WEEK = 2 THEN
WEEK_DAY := 'Monday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
ELSIF DAY_OF_WEEK = 3 THEN
WEEK_DAY := 'Tuesday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
ELSIF DAY_OF_WEEK = 4 THEN
WEEK_DAY := 'Wednesday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
ELSIF DAY_OF_WEEK = 5 THEN
WEEK_DAY := 'Thursday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
ELSIF DAY_OF_WEEK = 6 THEN
WEEK_DAY := 'Friday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
ELSIF DAY_OF_WEEK = 7 THEN
WEEK_DAY := 'Saturday';
DBMS_OUTPUT.PUT_LINE('Total Orders for ' || WEEK_DAY || ' is ' || NUM_OF_ORD || '.');
END IF;
END;
/
【问题讨论】: