ORACLE SQL Joining tables based on different time based events -


मेरे पास 2 टेबल हैं:

  • PROCESSOR_EVENT (आईडी, समय, मशीन, नाम, राज्य
  • COMM_EVENT (आईडी, समय, मशीन, नाम, प्रकार)

    मैं उस समय के समय में PROCESSOR_EVENT.Time और अगले COMM_EVENT के बीच का अंतर प्राप्त करना चाहता हूं अगले PROCESSOR_EVENT समय।

    यानी एक PROCESSOR_EVENT कि अगले PROCESSOR_EVENT से पहले होता है के बाद सबसे पहले COMM_EVENT घटना

    उदाहरण डेटा:।

      PROCESSOR_EVENT (आईडी, समय, मशीन, नाम, राज्य) 1, 01:00:00, टीआरएक्स 4, इग्निशन, गर्मी 2, 01:00:03, टीआरएक्स 1, मूवमेंट, त्रिभुजिंग 3, 01:00:23, टीआरएक्स 4, मूवमेंट, गर्मी 4, 01:00:32, टीआरएक्स 4 , दिशा परिवर्तन, स्थिर 5, 01:00:56, TRX4, रोकना, गर्म COMM_EVENT (आईडी, समय, मशीन, नाम, प्रकार) 1, 01:00:02, TRX4, दिशा अनुरोध, अनुरोध 2, 01:00: 15, टीआरएक्स 4, दिशा स्वीकृति, पावती 3, 01:00:16, TRX1, स्थिति परिवर्तन, कमांड 4, 01:00:34, टीआरएक्स 4, दिशा अनुरोध, अनुरोध 5, 01:01:02, TRX4, स्थिति परिवर्तन, कमांड   

    अपेक्षित वापसी:

      PROCESSOR_EVENT.Time, PROCESSOR_EVENT.Machine, PROCESSOR_EVENT.Name, COMM_EVENT.Time, COMM_EVENT.Type , समयदर्शी 01:00:00, टीआरएक्स 4, इग्निशन, 01:00:02, अनुरोध, 2 01:00:03, टीआरएक्स 1, मूवमेंट, 01:00:16, कमांड, 13 01:00:23, टीआरएक्स 4, मूवमेंट, रिक्त, रिक्त, रिक्त 01:00: 32, TRX4, दिशा परिवर्तन, 01:00:34, अनुरोध, 11 01:00:56, TRX4, रोकना, 01:01:02, कमांड, 6   

    कैसे के बारे में कोई भी विचार ऐसा करने के बारे में जाना अच्छा होगा, आपके समय के लिए अग्रिम धन्यवाद।

    इस क्वेरी को आज़माएं: < / p>

     <कोड> का चयन करें TO_CHAR (t.Time, 'HH24: एमआई: एस एस') के रूप में "PROCESSOR_EVENT.Time", t.Machine के रूप में "PROCESSOR_EVENT.Machine", t.Name के रूप में "PROCESSOR_EVENT.Name" , TO_CHAR (t.ce_time, 'HH24: एमआई: एस एस') के रूप में "COMM_EVENT.Time", t.ce_type "COMM_EVENT.Type" के रूप में, (t.ce_time - t.Time) * 24 * 60 * 60 TimeDifference रूप से (पे का चयन करें। *, ROW_NUMBER () से अधिक (द्वारा pe.ID आदेश द्वारा ce.Time वाला भाग) के रूप में आर एन, ce.Time ce_time के रूप में, ce.Type से ce_type के रूप में (PROCESSOR_EVENT का चयन करें। *, लीड (समय) से अधिक (विभाजन द्वारा समय तक मशीन आदेश) के रूप में next_pe_time PROCESSOR_EVENT से - यहाँ रखा कहां PROCESSOR_EVENT तालिका) के लिए छानने शर्तों के साथ लोगों को खरीदना वाम बाहरी पर ce.Machine = pe.Machine और ce.Time & gt COMM_EVENT ce शामिल हों; पीईटीईम और (पीएनेक्स्ट_पे_टाइम नल या सीई। समय और लेफ्टिनेंट; पे.एनएक्सटीपी_टाइम)) टी। टीआरआर = 1 ऑर्डर द्वारा टी। टाइम   <पी> इसे टेस्ट करें   

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -