Monday, 15 June 2015

In sql server why cant we use functions when comparing data from two tables -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 6 जवाब

क्या कोई कृपया मुझे बता सकता है क्या निम्नलिखित क्वेरी में गलत है

  तालिका 1 ए से एक का चयन करें, तालिका 2 बी जहां a.pdate = max (b.pdate)  

यह संकलित नहीं है ।

इस क्वेरी को लिखने का दूसरा तरीका

  सेट @ pdate = pdate से table2 चुनें 1 तालिका 1 ए से, तालिका 2 बी जहां a.pdate = max (b। Pdate)  

लेकिन मुझे यह समझना है कि पहली क्वेरी में क्या गलत है।

धन्यवाद

लेकिन मुझे यह समझना है कि पहली क्वेरी में क्या गलत है।

त्रुटि संदेश आपको कुछ बताता है पर आपके मूल्य का हो सकता है।

कुल मिलाकर WHERE क्लॉज में प्रकट नहीं हो सकता है जब तक कि यह एक HAVING खंड या एक चयन सूची में निहित subquery में नहीं है, और स्तंभ एकत्रित हो रहा है बाहरी संदर्भ।

अधिकतम () फ़ंक्शन एक योग है जो पंक्तियों के सेट के लिए अधिकतम मूल्य देता है जहां पंक्तियों को फ़िल्टर करने के लिए क्लॉज का उपयोग किया जाता है इसलिए यदि आप उस स्थान पर एक समग्र उपयोग करते हैं जहां आप फ़िल्टरिंग कर रहे हैं, तो यह स्पष्ट नहीं है कि आप वास्तव में कौन सी पंक्तियों को अधिकतम मान चाहते हैं।

एक पुनर्लेखन इस तरह दिख सकता है:

  dbo.table1 से 1 को चुनें जहां a.pdate = (अधिकतम) (बी.पीडीट) को dbo.table2 से बी के रूप में चुनें);  

No comments:

Post a Comment