2010-10-05 9 views
19

के साथ SQL अद्यतन क्वेरी वाक्यविन्यास क्या कोई इस प्रश्न में मेरी त्रुटि पा सकता है? मैं SQL Server 2000 का उपयोग कर रहा हूं और मैं CostCntry तालिका में सभी प्रविष्टियों को ActiveCostDetails तालिका में संबंधित मान में अद्यतन करना चाहता हूं। जहां खंड एक चयन कथन के साथ काम करता है।आंतरिक अद्यतन

UPDATE CostEntry CE 
INNER JOIN ActiveCostDetails As AD ON CostEntry.lUniqueID = ActiveCostDetails.UniqueID 
     SET CostEntry.sJobNumber = ActiveCostDetails.JobNumber 
    WHERE CostEntry.SEmployeeCode = '002' 
     AND SubString(CostCentre, 1, 1) = sDepartmentCode 
     AND substring(CostCentre, 3, 1) = sCategoryCode 
     AND substring(CostCentre, 5, 2) = sOperationCode 
+0

@OMG Ponies- धन्यवाद तलाश के लिए है, लेकिन इस क्वेरी मूल रूप में एक ही प्रभाव (सिंटेक्स त्रुटि की वजह से काम नहीं कर रहा है)। मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि SQL सर्वर एक क्वेरी में रिक्त स्थान और कैरिज रिटर्न को अनदेखा करता है। – MAW74656

+0

मैंने आपके द्वारा पोस्ट की गई पोस्ट को दोबारा सुधार दिया - पढ़ने में आसान, मदद करने में आसान –

+0

ठीक टट्टू, मैं समझता हूं। मैं एक उदाहरण से ऑनलाइन काम कर रहा था ... http://www.tek-tips.com/faqs.cfm?fid=1958 लेकिन आपका रास्ता बेहतर है। – MAW74656

उत्तर

40

SET जरूरतों क्वेरी की FROM\JOIN\WHERE भाग से पहले आने के लिए।

UPDATE CE 
SET sJobNumber = AD.JobNumber 
FROM CostEntry CE 
    INNER JOIN ActiveCostDetails As AD 
     ON CE.lUniqueID = AD.UniqueID 
WHERE CE.SEmployeeCode = '002' 
    AND SubString(CostCentre, 1, 1) = sDepartmentCode 
    AND substring(CostCentre, 3, 1) = sCategoryCode 
    AND substring(CostCentre, 5, 2) = sOperationCode 
+0

+1: [एसएस 2000 अपडेट दस्तावेज] (http://msdn.microsoft.com/en-us/library/aa260662%28SQL.80%29.aspx) –

+0

@ जो स्टीफनेल्ली - बंद करें, लेकिन पार्सर पसंद नहीं है उपनाम सेट होने पर नाम। – MAW74656

+0

यह काम किया: अद्यतन सीई सेट CE.sJobNumber = AD.JobNumber से CostEntry सीई अंदरूनी ActiveCostDetails ई रूप में शामिल होने पर CE.lUniqueID = AD.UniqueID कहां CE.SEmployeeCode = '002' और सबस्ट्रिंग (CostCentre, 1 , 1) = sDepartmentCode और सबस्ट्रिंग (CostCentre, 3, 1) = sCategoryCode और सबस्ट्रिंग (CostCentre, 5, 2) = sOperationCode – MAW74656

1

यह काम करना चाहिए

UPDATE CE 
SET CostEntry.sJobNumber = ActiveCostDetails.JobNumber 
FROM CostEntry CE 
INNER JOIN ActiveCostDetails As AD ON CostEntry.lUniqueID = ActiveCostDetails.UniqueID  
    WHERE CostEntry.SEmployeeCode = '002' 
     AND SubString(CostCentre, 1, 1) = sDepartmentCode 
     AND substring(CostCentre, 3, 1) = sCategoryCode 
     AND substring(CostCentre, 5, 2) = sOperationCode 
+2

वाह, पुराना सवाल .... बहुत शर्मनाक है कि मैं इसे वापस नहीं जानता था ... – MAW74656

संबंधित मुद्दे