สิทธิ์ภาษา sql คดีแถลงการณ์องชั่วโมงคอลัมน์

0

คำถาม

มี 2 ตารางข้อมูลเรียบร้อยแล้ว-รับคำสั่ง&config_check.

create table orders (order_created date,
                     cus_no varchar2(20),
                     order_num number,
                     pay_type varchar2(30),
                     MFC date,
                     prod_no varchar2(15) );
                     
create table config_check (check_type varchar2(100),
                     field_name varchar2(10),
                     field_value varchar2(15),
                     start_date date,
                     end_date date
                    );
                    
insert into orders values ('20-NOV-21', 'GT-19Y67', 489, 'Credit Card', NULL, '1000');
insert into orders values ('07-OCT-21', 'NU-20D73', 567, 'Cash on Delivery', '14-OCT-21', '1001');
insert into orders values ('17-NOV-21', 'JP-16V81', 789, 'Cash on Delivery', NULL, '1101');
insert into orders values ('20-NOV-21', 'DZ-17T92', 837, 'Net Banking', '23-NOV-21', '1002');
insert into orders values ('16-SEP-21', 'RJ-18W107', 124, 'Cash on Delivery', NULL, '1002');
insert into orders values ('18-NOV-21', 'KI-19A39', 638, 'Cash on Delivery', NULL, '1000');
insert into orders values ('19-NOV-21', 'FT-20U86', 347, 'Net Banking', NULL, '1002');
insert into orders values ('19-NOV-21', 'FT-20U86', 347, 'Net Banking', NULL, '1110');



insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1000', '16-NOV-21', '30-NOV-21' );
insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1101', '08-SEP-21', '21-SEP-21' );
insert into config_check VALUES ('Invalid Orders Check', 'PROD_NO', '1002', '16-NOV-21', '30-NOV-21' );
insert into config_check VALUES ('Cust Bday Offer', 'CUST_NO', '845796', '13-AUG-21', '23-AUG-21' );

commit;

งานก็คือการค้นหา cus_no,order_num อยู่ที่ไหนสั่งไม่ถูกต้องอยู่ใน 3 เงื่อนไข:

  1. pay_type คือ'เงินในส่งของ'-ตอนนี้จะเกิดขึ้นนั้นเป็นชั่วโมงคอลัมน์ที่ชื่อความคิดเห็นควรจะมีข้อความ'คำสั่งนี้ยังไม่คัดเข้ารอบมาเพื่อเข้าแข่งขัน..สำหรับสาเหตุการตายหรือเป'
  2. คอลัมน์ MFC ไม่ใช่โพรโทคอล aimcomment-ตอนนี้จะเกิดขึ้นนั้นเป็นชั่วโมงคอลัมน์ที่ชื่อความคิดเห็นควรจะมีข้อความ'คำสั่งนี้ไม่สามารถเป็น MFC'
  3. ตอนที่การเพิ่มเติมสินค้าคือการเพิ่มซึ่งมันไม่ถูกแสดงไว้ในรายการให้อยู่ใน config_check โต๊ะ อันนี้ต้องการคำอธิบาย ดังนั้นฉันจะต้องพยายามทำดีที่สุดของฉันกับด้านบนโต๊ะตัวอย่างจะอธิบายอยู่ข้อมูลเต็มสำหรับเรื่องนี้ ใน config_check โต๊ะที่นั้นมีอยู่ 2 PROD_NOs(1000 และ 1002)สำหรับ CHECK_TYPE'ไม่ถูกต้องรับคำสั่งรซึ่งเริ่มเด็กอายุ 16-พ.ย.-อายุ 21 วันนี้เป็นวันที่ 21-พ.ย.-2021. ดังนั้นเท่านั้นพวกนั้น 2 แถวสามารถเลือยู่ที่ไหนวันนี้เป็นวันที่การโกหกระหว่างเริ่มและวันสิ้นสุด. ตอนนี้สั่งจำนวน 347 มีสินค้าจำนวน 1110 ซึ่งมันไม่ได้อยู่ใน config_check โต๊ะ ในกรณีเช่นนี้ที่ชั่วโมงคอลัมน์ที่ชื่อความคิดเห็นควรจะมีข้อความ'ไม่ใช่ชื่อรายการไม่สามารถสั่ง'.

ฉันต้องมีหน่วยที่ 1 ก็ 2 เงื่อนไขแต่ไม่สามารถทำให้คน 3 หนึ่ง นี่คือของฉันพยายามที่กับการค้นหา:

select o.CUS_NO, o.ORDER_NUM,
       CASE 
            WHEN o.pay_type = 'Cash on Delivery' THEN 'This order does not qualify for Cod'
            WHEN o.MFC IS NOT NULL THEN 'This order can not be an MFC'
       END comments
       from orders o INNER JOIN 
( select * from config_check where check_type = 'Invalid Orders Check' and sysdate between start_date and end_date) c
ON (o.prod_no = c.field_value)
where o.ORDER_CREATED > c.start_date
  AND (o.pay_type = 'Cash on Delivery' OR o.MFC IS NOT NULL);

ที่อยู่เหนือสืบค้นให้ผลเป็น:

  1. DZ-17T92837 คำสั่งนี้ไม่สามารถเป็น MFC
  2. กี 19A39638 คำสั่งนี้ยังไม่คัดเข้ารอบมาเพื่อเข้าแข่งขัน..สำหรับสาเหตุการตายหรือเป

enter image description here

คดีควรจะมีรอกอีกตอนเงื่อนไขว่าสำหรับคนที่ 3 เงื่อนไขเดียวกันควรจะอยู่ใน bracketed และข้อตกลงนั้นที่สุดท้าย ฉันไม่สามารถทำให้คน 3 เงื่อนไขในกรณีแบบเดียวกันหมด ใครก็ได้ช่วยฉันได้ที่ต้องการผลลัพธ์? ที่ต้องการพิมพ์ออกควรจะเป็น

  1. DZ-17T92837 คำสั่งนี้ไม่สามารถเป็น MFC
  2. กี 19A39638 คำสั่งนี้ยังไม่คัดเข้ารอบมาเพื่อเข้าแข่งขัน..สำหรับสาเหตุการตายหรือเป
  3. FT-20U86347 ไม่ชื่อรายการไม่สามารถสั่ง

enter image description here

ต้องการความช่วยเหลือหรือแม้แต่จะชี้ประเด็นจะเยี่ยมมาก ขอบคุณสำหรับอ่านช่างยาวซะหน่อย

แก้ไข:ฉันมีปัญหาการวางเรียบร้อยงกับการค้นหาผลลัพธ์อยู่ในโต๊ะรูปแบบ ฉันจะแบ่งปันการส่งออกอยู่ในแฟ้มภาพประเภท jpegname.

case oracle sql
2021-11-20 20:21:40
1
0

คุณใช้คนอื่นเงื่อนไขใน กรณี ขโยงข้างนอกนั่น

select o.CUS_NO, o.ORDER_NUM,
       CASE 
            WHEN o.pay_type = 'Cash on Delivery' THEN 'This order does not qualify for Cod'
            WHEN o.MFC IS NOT NULL THEN 'This order can not be an MFC'
        enter code here    **ELSE 'Non listed item can not be ordered'**                
       END as  comments
       from orders o INNER JOIN 
( select * from config_check where check_type = 'Invalid Orders Check' and sysdate between start_date and end_date) c
ON (o.prod_no = c.field_value)
where o.ORDER_CREATED > c.start_date
  AND (o.pay_type = 'Cash on Delivery' OR o.MFC IS NOT NULL);
2021-11-22 04:49:36

ฉันไม่สามารถทำให้มัน<ป้อนรหัสของเธอ>นส่วนหนึ่ง.
Arty155

ฉันต้องได้รับการค้นหา:เลือก o1.cus_no,o1.order_num,'ไม่ชื่อรายการไม่สามารถสั่ง'com จากคำสั่ง o1 ที่อยู่(เลือก 1 จาก(เลือกโอ* จากคำสั่ง o ตนภายในเข้าร่วม(เลือก*จาก config_check อยู่ไหน check_type='ไม่ถูกต้องรับคำสั่งเช็คแล้ sysdate ระหว่าง start_date และ end_date)c บน(โอ.prod_no=c.field_value)อยู่ไหนโอORDER_CREATED>c.start_date ฉันอยู่ไหนผมก็ไม่ต่างกันหรอกORDER_NUM=o1.ORDER_NUM และ o1.prod_no ไม่ได้อยู่ใน(เลือก FIELD_VALUE จาก config_check อยู่ไหน check_type='ไม่ถูกต้องรับคำสั่งเช็คแล้ sysdate ระหว่าง start_date และ end_date));ซึ่งทำให้ผมลำดับของ num 347
Arty155

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่