शुभ दिन हर कोई। मैं अपने एसक्यूएल स्टेटमेंट के बारे में एक प्रश्न पूछना चाहता हूं। मैं SQL सर्वर 2008 का उपयोग कर रहा हूं और वर्कफ़्लो लेनदेन नामक एक तालिका है। इस तालिका में, मेरे पास 12 रिकॉर्ड हैं। नीचे दी गई तस्वीर तालिका की सामग्री है।सबक्वायरीज़ का उपयोग करके अद्यतन - आवश्यक रिकॉर्ड्स से अधिक अपडेट
UPDATE Workflow_Txn
SET Status = 1
WHERE [RequestId] IN
(
SELECT [RequestId]
FROM Workflow_Txn
WHERE [OrderNumber] < (SELECT MAX(OrderNumber) FROM Workflow_Txn WHERE RequestId = 3)
AND RequestId = 3
)
मेरे उद्देश्य ऐसा अनुरोध आईडी है कि अधिकतम से कम की ORDERNUMBER, जो SELECT कथन अंदर से व्यवहृत किया जा सकेगा है अद्यतन करने के लिए है:
मैं इस एसक्यूएल बयान है WHERE खंड। अब मैं उम्मीद करता हूं कि रिकॉर्ड अपडेट किए जाएंगे केवल रिकॉर्ड्स (कोड में, यह अनुरोध आईडी # 3) होगा।
वास्तव में क्या हुआ केवल चार रिकॉर्ड अपडेट होने की बजाय, यह पांच (5) हो गया! क्या मेरे मौजूदा SQL कथन में कोई समस्या है?
मुझे लगता है कि तुम क्या पता चला है मुझे मेरा की तुलना में आसान था: क्या मुझे लगता है कि आप देख रहे थे की तरह कुछ था। मैं ऑर्डर नंबर से कम रिकॉर्ड अपडेट करने का लक्ष्य रख रहा हूं, यानी मैं नवीनतम रिकॉर्ड से पहले रिकॉर्ड अपडेट करूँगा। –
@ जू-चान: जहां तक मैं समझता हूं कि मेरी क्वेरी को काम करना चाहिए, क्या आपने इसका परीक्षण किया है? –