如何使用items表顯示數據庫中的所有記錄?我當前的查詢顯示項目894的信息。我嘗試使用循環,但沒有運氣。pl/sql嵌套循環
我有兩個表,庫存和itemid。其中,itemid具有料品號和說明,而庫存表具有料品的信息,例如尺寸,顏色,價格和庫存量。
set serveroutput on
DECLARE
current_item number(8);
totalvalue number(8,2);
description varchar2(50);
item_id number(3);
CURSOR Inventory_Info IS
SELECT
itemsize
,color
,curr_price
,qoh
,curr_price*qoh as Total
FROM inventory
WHERE itemid=Current_item;
BEGIN
current_item:=894;
totalvAlue:=0;
SELECT
itemdesc, itemid
INTO description, item_id
FROM item
WHERE itemid=current_item;
DBMS_OUTPUT.PUT_LINE('Item ID: ' || TO_CHAR(item_id) || ' Item Description: ' || description);
OPEN Inventory_Info;
LOOP
Fetch Inventory_Info INTO Inventory_rocord;
EXIT WHEN Inventory_Info%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Size: ' || Inventory_record.itemsize);
DBMS_OUTPUT.PUT_LINE('Color: ' || Inventory_record.color);
DBMS_OUTPUT.PUT_LINE('Price: ' || Inventory_record.curr_price);
DBMS_OUTPUT.PUT_LINE('QOH: ' || Inventory_record.qoh);
DBMS_OUTPUT.PUT_LINE('Value: ' || Inventory_record.total);
TotalValue:=TotalValue + Inventory_record.total;
End Loop;
DBMS_OUTPUT.PUT_LINE('TOTAL VALUE: ' || TotalValue);
Close Inventory_Info;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No inventory for Item No. '|| current_item);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error Message: '|| SQLERRM);
END;
這使我朝着一個好方向。我想要顯示物品ID和說明,以及與該物品ID相關聯的所有庫存信息以及物品的總價值。我發佈的查詢是這樣做的,除了我必須輸入一個id。我不想輸入一個ID,我只是想讓它顯示執行時的所有數據。你認爲可以在WHERE子句中有一個指針指向另一個指針的行嗎? – user1084561
@ user1084561您不必在我的查詢中輸入一個id。它從項目表中提取所有itemid。你可以使用光標參數 – Sathya