بتاريخ: 22 فبراير 200818 سنة comment_123012 ارجوكم مساعدتى فى تحقيق الاستعلامات المطلوبه هذه الجداول مع البيانات كامله CREATE TABLE CUSTOMER (CustNo number(3), CustName Varchar2(10) constraint customer_custname_nn Not Null, City VARCHAR2(10) DEFAULT 'Cairo', Phone CHAR(12), constraint customer_custno_pk PRIMARY KEY (CustNO)); --------------------------------- create table item (itemno number(2), itemname Varchar2(6), itemPrice number(3,2), qtyonhand number(3), constraint item_itemno_pk PRIMARY KEY (itemno), constraint item_qtyonhand_cc CHECK (qtyOnHand >=0)); -------------------------------- create table INVoice (invno number(4), invdate date, custno number(3) constraint invoice_custno_nn NOT Null, constraint invoice_invno_pk PRIMARY KEY (invno), constraint invoice_custno_fk FOREIGN KEY (custno) REFERENCES customer(custno)); --------------------------------- create table INVITEM (invno number (4), itemno number (2), Qty number (2) NOT NUll, Constraint INVITEM_invno_itemno_pk PRIMARY KEY (invno,itemno), Constraint INVITEM_invno_fk Foreign Key (invno) REFERENCES invoice (invno), CONSTRAINT INVITEM_itemno_fk FOREIGN KEY (itemno) REFERENCES item(itemno)); ---------------------------------- desc Customer; -- Insert Statment into TABLE CUSTOMER insert into Customer values (211,'Khalil','Cairo',Null); insert into Customer values (212,'Youseef','Cairo','002-546 1000'); insert into Customer values (225,'Ghada','Banha','044-234 2345'); insert into Customer values (239,'Hani','Alex','003-567 8899'); insert into Customer values (345,'Ayman','Cairo','002-624 2299'); insert into Customer values (444,'Bassem','Giza','00-388 3456'); insert into customer values (445,'soha','alex',''); insert into Customer values (447,'Noha','Giza',Null); insert into Customer values (449,'Kahled','Alex','003-578 3000'); ----------------------------------- desc item; -- insert statment into Table ITEM insert into item values (1,'screw',2.25,50); insert into item values (2,'Nut',5.00,110); insert into item values (3,'Bolt',3.99,75); insert into item values (4,'Hammer',9.99,125); insert into item values (5,'Washer',1.99,100); insert into item values (6,'Nail',0.99,300); ---------------------------------- desc invoice; -- Insert statment into TABLE INVOICE insert into Invoice values (1001,'5/5/2007',212); insert into Invoice values (1002,'17/1/2007',225); insert into Invoice values (1003,'23/1/2007',239); insert into Invoice values (1004,'14/8/2007',211); insert into Invoice values (1005,'1/9/2007',212); ---------------------------------- desc INVITEM; -- INSERT Statment Into TABLE INVITEM insert into invitem values (1001,1,5); insert into invitem values (1001,3,5); insert into invitem values (1001,5,9); insert into invitem values (1002,1,2); insert into invitem values (1002,2,3); insert into invitem values (1003,1,7); insert into invitem values (1003,2,1); insert into invitem values (1004,4,5); insert into invitem values (1005,4,10); المطلوب1- اعرض رقم واسم كل عميل بأجمالى مشتريات تزيد عن 50 .2-اعرض رقم واسم كل صنف غير مباع باى فاتوره ورصيده بالمخزن.3-اعرض رقم واسم كل عميل له اكثر من فاتوره .4-استخدم استعلام فرعى لعرض رقم واسم كل صنف يقل رصيده بالمخزن عن متوسط الارصده لجميع الاصناف .5-اعرض رقم واسم كل صنف غير مباع ويذيد رصيده عن رصيد كل الاصناف المباعه. تقديم بلاغ
بتاريخ: 24 فبراير 200818 سنة comment_123178 أخي الموضوع إن شاء الله سهل ولكن نرجو منك توضيح شرح بيانات الجداول وخصوصا جداول ال (invoice,invitem) حتى نتمكن من فهم وربط البيانات حسب النظام المرغوب تقديم بلاغ
بتاريخ: 27 فبراير 200818 سنة comment_123487 السلام عليكم-----------------------حاول تجرب الاستعلامات دى /* اعرض رقم واسم كل عميل بأجمالى مشتريات تزيد عن 50 . . */ SELECT c.custno, c.custname FROM customer c WHERE 50 < (SELECT SUM (qp) FROM (SELECT i.itemprice * it.qty qp, it.invno FROM item i, invitem it WHERE i.itemno = it.itemno) ii WHERE ii.invno IN (SELECT iv.invno FROM invoice iv WHERE iv.custno = c.custno)) /* اعرض رقم واسم كل صنف غير مباع باى فاتوره ورصيده بالمخزن. */ SELECT i.itemno, i.itemname FROM item i WHERE itemno NOT IN (SELECT itemno FROM invitem) /* -اعرض رقم واسم كل عميل له اكثر من فاتوره . */ SELECT c.custno, c.custname FROM customer c WHERE 1 < (SELECT COUNT (iv.invno) FROM invoice iv WHERE iv.custno = c.custno) /* استخدم استعلام فرعى لعرض رقم واسم كل صنف يقل رصيده بالمخزن عن متوسط الارصده لجميع الاصناف . */ SELECT i.itemno, i.itemname FROM item i WHERE i.qtyonhand < (SELECT AVG (ii.qtyonhand) FROM item ii) /*اعرض رقم واسم كل صنف غير مباع ويذيد رصيده عن رصيد كل الاصناف المباعه.*/ SELECT i.itemno, i.itemname FROM item i WHERE itemno NOT IN (SELECT itemno FROM invitem) AND i.qtyonhand > (SELECT MAX (ii.qtyonhand) FROM item ii WHERE EXISTS (SELECT iv.itemno FROM invitem iv WHERE ii.itemno = iv.itemno)) تقديم بلاغ
بتاريخ: 27 فبراير 200818 سنة كاتب الموضوع comment_123494 شكرااااااااااااااااااااا جزاك الله كل خير تقديم بلاغ
بتاريخ: 28 فبراير 200818 سنة comment_123523 بالنسبة للسؤال الرابع والخامس نرجوا التوضيح اكثر من ذلك لانى ممكن ان اقارن المتوسط للايتم كلها بما فيها الايتم الذى معى او كلها ما عدا الذى معى وكذلك السؤال الخامس اكبر حاجة لمين؟؟ تم تعديل 28 فبراير 200818 سنة بواسطة abdo_its تقديم بلاغ
بتاريخ: 28 فبراير 200818 سنة comment_123530 ------------first question--------------- SELECT c.custno, c.custname FROM customer c WHERE 50 <( SELECT SUM (qty) FROM (SELECT i.itemprice * iv.qty qty,v.CUSTNO FROM item i, invitem iv,invoice v where i.ITEMNO=iv.ITEMNO and v.INVNO=iv.INVNO)qry where qry.CUSTNO=c.CUSTNO); ------------second question------------- SELECT i.itemno,i.itemname FROM item i WHERE not exists(select vi.ITEMNO from invitem vi where vi.ITEMNO=i.ITEMNO); ------------third question------------- SELECT c.custno, c.custname,count(v.CUSTNO) FROM customer c , invoice v WHERE (c.custno = v.custno) having count(v.CUSTNO)>0 group by c.custno, c.custname; ------------forth question------------ select i.ITEMNO,i.ITEMNAME,i.QTYONHAND from item i where i.QTYONHAND < (select avg(ii.QTYONHAND) from item ii); ------------fifth question------------ SELECT i.itemno,i.itemname FROM item i WHERE not exists (select vi.ITEMNO from invitem vi where vi.ITEMNO=i.ITEMNO) and i.QTYONHAND >(SELECT MAX (ii.qtyonhand) FROM item ii WHERE EXISTS (SELECT iv.itemno FROM invitem iv WHERE ii.itemno = iv.itemno)); ----------------------------------------- تم تعديل 28 فبراير 200818 سنة بواسطة Amgad تقديم بلاغ
بتاريخ: 28 فبراير 200818 سنة comment_123534 السلام عليكم ورحمة الله وبركاتهإليك الحلول وبطريقة مختلفة علي حسب فهي مراعاة للسرعة التنفيذ والله أعلم. select c.custno,c.custname,iv.qty*i.itemprice Purchages from customer c,item i,invoice v,invitem iv where c.custno=v.custno and iv.invno=v.invno and iv.itemno=i.itemno and iv.qty*i.itemprice>50; select itemno,itemname,itemprice,qtyonhandfrom itemwhere itemno not in (select itemno from invitem)select c.custno,c.custname,count(*) NofInvoicefrom customer c,invoice vwhere c.custno=v.custnogroup by c.custno,c.custnamehaving count(*)>1;select itemno,itemname,qtyonhandfrom itemwhere qtyonhand <(select avg(qtyonhand) from item);select itemno,itemname,itemprice*qtyonhand balancefrom itemwhere itemno not in (select itemno from invitem)and itemprice*qtyonhand >(select sum(i.itemprice*iv.qty) from item i,invitem iv where i.itemno=iv.itemno) تقديم بلاغ
بتاريخ: 29 فبراير 200818 سنة كاتب الموضوع comment_123617 شكرا جزيلا لكل النا الحلوه الى ساعدتنا فى هذا الموضوع تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.