Monday 15 June 2015

sql - MySQL leftjoin and ORDER -


मैं एक mySQL क्वेरी से एक समस्या का सामना कर रहा हूं।

मैं प्रत्येक credit_memo से पिछले दर विनिमय HISTORIQUE_DEVISE तालिका

<कोड> के लिए मेरा रिकॉर्ड HISTORIQUE_DEVISE तालिका हैं निम्नलिखित:। < पूर्व> आईडी | ACCOUNT_ID | Code_source | Code_destination | तिथि | Taux | .. 242 | 12 | 1 | 133 | 2013-02-22 | 0.82000 | .. 243 | 12 | 1 | 133 | 2013-03-26 | 0.96000 | .. 244 | 12 | 1 | 133 | 2013-03-26 | 1.2 9 000 | ..

वर्तमान में, मेरे आखिरी बाएं जुड़ने में 3 पंक्तियाँ वापस आती हैं (यदि credit_memo.date बराबर होता है 2013-03-26 और चयन रिटर्न 0.82000 में rate.taux । मैं 1.29000 प्राप्त करने के लिए क्वेरी को कैसे रूपांतरित कर सकता / सकती हूं, मेरे बाएं जुड़ने का आखिरी मान? मैं केवल पिछले # 244 रिकॉर्ड करना चाहते हैं। यह संभव बाईं अंदर सबक्वेरी से बचने के लिए शामिल हो?

आपकी मदद के लोगों के लिए धन्यवाद!

  का चयन करें credit_memo.code_avoir_client, credit_memo है .total_ttc, credit_memo.date, credit_memo.code_utilisateur, credit_memo.montant_restant_a_payer, DEVISE.code_iso, PAIEMENT_FACTURE_FOURNISSEUR.date_reglement, customer.code_client, customer.code_utilisateur_client, customer.prenom, customer.raison_social, lead.code_client, lead.code_utilisateur_client, lead.prenom , Lead.raison_social, project.project_code, project.name, rate.taux से AVOIR_CLIENT के रूप में क्रेडिट_एमएमओ ग्राहक को ग्राहक के रूप में छोड़ दें ग्राहक के रूप में दर्ज करें cod_client = credit_memo.code_client और customer.code_profil_client = 1 और (customer.account_id = 0 या customer.account_id = 12) और customer.etat = 0 बायाँ शामिल हों ग्राहक नेतृत्व के रूप में पर lead.code_client = credit_memo.code_client और lead.code_profil_client = 2 और (lead.account_id = 0 या lead.account_id = 12) और lead.etat = 0 बाईं तरफ project.project_code = credit_memo.project_code परियोजना के रूप में परियोजना में शामिल हों और (project.account_id = 0 या project.account_id = 12) और project.etat = 0 बायाँ शामिल हों पर चिंतन DEVISE.code_devise = credit_memo.code_devise और (DEVISE.account_id = 0 या DEVISE.account_id = 12) और DEVISE.etat = 0 बायाँ शामिल हों PAIEMENT_FACTURE_FOURNISSEUR पर PAIEMENT_FACTURE_FOURNISSEUR.code_avoir_client = credit_memo.code_avoir_client और (PAIEMENT_FACTURE_FOURNISSEUR.account_id = 0 या PAIEMENT_FACTURE_FOURNISSEUR। ACCOUNT_ID = 12) और PAIEMENT_FACTURE_FOURNISSEUR.etat = 0 वाम ईटा के रूप में ETABLISSEMENT शामिल हों पर eta.code_etablissement = credit_memo.code_etablissement और (eta.account_id = 0 या eta.account_id = 12) वाम जम्मू ओआईआईएन HISTORIQUE_DEVISE दर पर दर CODE_etablissement = credit_memo.code_etablissement और दर। CODE_DEVISE_SOURCE = credit_memo.CODE_DEVISE और दर। CODE_DEVISE_DESTINATION = eta.CODE_DEVISE और दरडेटा & lt; = credit_memo.date और (rate.account_id = 0 या rate.account_id = 12) और rate.etat = 0 कहां (credit_memo.account_id = 0 या credit_memo.account_id = 12) और credit_memo.etat = 0 ग्रुप credit_memo.code_avoir_client द्वारा;    

आप उन पंक्तियों को जोड़कर अन्य पंक्तियों को समाप्त कर सकते हैं जहां उन्हें फ़िल्टर किया जाता है। आपका एसक्यूएल मेरे लिए कुछ जटिल ज्ञान के बिना समझने के लिए थोड़ा जटिल है, लेकिन सामान्य तौर पर यह कहां कुछ ऐसा होगा:

  और नहीं (HISTORIQUE_DEVISE दर से * चुनें WHERE rate.accoun_id = Rate_2.accountid ... अन्य कुंजी फ़ील्ड यहां जोड़ें यदि उन्हें समान होना चाहिए ... और दर_2.ID & gt; rate.ID)   

दूसरे शब्दों में, रिकॉर्ड छोड़ें जहां आप HISTORIQUE_DEVISE में "मिलान रिकॉर्ड (रिकॉर्ड्स)" ढूंढें, लेकिन एक उच्च आईडी

No comments:

Post a Comment