Thursday 15 July 2010

sql server - TSQL Subquery related -


 <कोड> का चयन करें DT.TenantDescription, DT.PropertyNumber, DT.UnitNo, DT.AdressLn1, DT.AddressLn2, डीटी। AddressSituation, (मामला है जब DT.TransactionCode = 1 तब DT.New_TransactionValue वरना 0 अंत) RentDue के रूप में, (मामला है जब DT.TransactionCode = 2 तब DT.New_TransactionValue वरना 0 अंत) के रूप में OTHERSUMSDUE, (मामला है जब DT.TransactionCode = 3 तब डीटी एआरआरएआरएसएसबीएफडब्ल्यूडी, (मामले में डीटीटीआरसंसंसाधनकोड = 4 THEN डीटी न्यूज्रैंसैक्शनएवल्यूस ELSE 0 एडीडी) एआरआरएआरएससीसीएफडब्ल्यूडी, (मामला जब डीटी ट्रांसजनसंकेत = 5 से डीटी न्यूज्रैंसैक्शन वैल्यू ईएलएसई 0 ईडीडी) आईआरसीकेआरएबीआरएन्ट (मामले में जब डीटी.TransactionCode & gt; 5 THEN डीटी.New_TransactionValue ELSE 0 END) से व्यय के रूप में (SELECT * * (SELECT New_TenantNameOnly FROM New_Rentmaster Rm WHERE Rm.New_rentmasterId = PD.new_rentmasterID) के रूप में TenantDescription, * * (SELECT [New_UnitNumber] new_propertyunits NPU जहां से एनपीयू। [न्यू_प्रॉपर्ट्युनिटआईडी] = पीडी। [न्यू_यूटीनंबरआईड]) यूनिट नो, ( New_AddressLine1 New_AddressLine1 से New_address WHERE New_addressId = (New_PapertyMaster PM से नया चयन करें प्रधानमंत्री जहां PM.New_propertymasterid = PD। [New_propertymastername]) AS AdressLn1, (SELECT New_AddressLine2 से New_address WHERE New_addressId = (नई न्यूज़लेटर से नई न्यूज़लेटर चुनें PMOD WHERE PM.new_propertymasterid = PD। ट्रांसपोर्टकोड, (SELECT New_PropertyNumber FROM New_PropertyMaster PM WHERE PM.new_propertymasterid = PD। [New_propertynumbernameid]) के रूप में एडीए पता Ln2, (SELECT TT। [New_TransactionTypeCode] के रूप में TransactionCode New_transactiontype TT WHERE [New_transactiontypeId] = PD [new_transactiontype]। संपत्ति के नंबर के रूप में, (चयन करें New_UnitAddressIdName FROM New_propertyunits NPU WHERE NPU। [New_propertyunitsId] = PD। [New_unitnumberid]) एएस पता स्थिति, PD.New_TransactionValue FROM New_PropertyDetails पीडी) डीटी   

कोड के ऊपर टुकड़ा ठीक काम करता है

अब मैं उपरोक्त कॉलम में बदलाव करना चाहता हूं n जहां मैं निम्नलिखित कोड

  New_Rentmaster Rm New_TenantNumber में (मैक्स का चयन से चुनें New_TenantNameOnly (New_TenantNumber साथ ऊपर स्तंभ बदलना चाहते हैं (नाम  TenantDescription  को एलियास किया गया) ) द्वारा [New_Unit_No] new_rentmaster ग्रुप से, [New_Propety_Number])   

तो यह मुझे एक त्रुटि देता है

Subquery रिटर्न एक से अधिक मूल्य

यह कोड एक से अधिक मान वापस करने वाला है

तो मुझे इसके बारे में क्या करना चाहिए ??

यदि आप कई परिणामों को वापस लाने की इच्छा रखते हैं, तो आपको उप-गुणवत्ता के बजाय शामिल होने का उपयोग करने पर विचार करना चाहिए। एक इस तरह दिखता है:

  चुनें * HumanResources.Employee से ई अंदरूनी Person.Person शामिल हों पर e.BusinessEntityID = p.BusinessEntityID पी के रूप में   

यह कई पंक्तियों के रूप में उत्पादन करेगा जिसे ON शर्त (जैसे कर्मचारी में BusinessEntityID < / code> 1 की, और व्यक्ति BusinessEntityID साथ में तीन पंक्तियों, ऊपर परिणाम सेट में छह पंक्तियों का उत्पादन करेगा जहां BusinessEntityID है 1)

No comments:

Post a Comment