Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

गतिशील रूप से बदलते कॉलम पर 2 तालिकाओं में शामिल हों

कुछ कारणों से MySQL में ऐसा करना दर्दनाक है। सबसे पहले, MySQL के पास संचयी रकम के लिए बहुत अच्छा समर्थन नहीं है, जिसकी आप तुलना करना चाहते हैं।

और दूसरा, आपका रिजल्ट सेट थोड़ा कमजोर है। सब दिखाना ज़्यादा समझदारी है ins रिकॉर्ड जो प्रत्येक outs . में योगदान करते हैं रिकॉर्ड, उनमें से सिर्फ एक नहीं।

इस उद्देश्य के लिए, आप संचयी रकम पर शामिल होने का उपयोग कर सकते हैं, जो इस तरह दिखता है:

select o.*, (o.to_quantity  - o.quantity) as from_quantity,
       i.*
from (select o.*,
             (select sum(o2.quantity)
              from outs o2
              where o2.id <= o.id
             ) as to_quantity
      from outs o
     ) o join
     (select i.*,
             (select sum(i2.quantity)
              from ins i2
              where i2.id <= i.id
             ) as to_quantity
      from ins i
     ) i
     on (o.to_quantity  - o.quantity) < i.to_quantity and
        o.to_quantity > (i.to_quantity  - i.quantity)

यहां SQL Fiddle है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DSN ODBC का उपयोग करके ऑनलाइन MySQL डेटाबेस से कनेक्ट करें

  2. इस प्रकार के SQL इंजेक्शन का उद्देश्य क्या है?

  3. मैसकल 5.7 त्रुटि 3143 (42000):अमान्य JSON पथ अभिव्यक्ति। त्रुटि वर्ण स्थिति के आसपास है 3

  4. वर्कबेंच MySQL क्लाइंट का उपयोग करके डेटाबेस से कैसे कनेक्ट करें

  5. स्वाइप प्रोलॉग mysql + web