एसक्यूएल सर्वर के लिए 2008 R2 के क्षेत्र में नवीनतम गैर-शून्य मान के साथ शून्य मान की जगहresultset श्रृंखला (एसक्यूएल सर्वर 2008 R2)
मैं एक resultset है कि इस (नोट की तरह लग रहा है [price] संख्यात्मक है, शून्य से नीचे एक का प्रतिनिधित्व करता है शून्य मूल्य, परिणाम सेट product_id और टाइमस्टैम्प)
product timestamp price
------- ---------------- -----
5678 2008-01-01 12:00 12.34
5678 2008-01-01 12:01 NULL
5678 2008-01-01 12:02 NULL
5678 2008-01-01 12:03 23.45
5678 2008-01-01 12:04 NULL
मैं एक परिणाम के सेट है कि (अनिवार्य) प्रतियां नवीनतम पूर्ववर्ती पंक्ति से एक गैर शून्य मान, एक resultset का उत्पादन करने के लिए है कि बदलना चाहते द्वारा आदेश दिया गया है ऐसा लगता है:
product timestamp price
------- ---------------- -----
5678 2008-01-01 12:00 12.34
5678 2008-01-01 12:01 12.34
5678 2008-01-01 12:02 12.34
5678 2008-01-01 12:03 23.45
5678 2008-01-01 12:04 23.45
मैं किसी भी कुल/विंडोइंग समारोह है कि मुझे इस (यह केवल एसक्यूएल सर्वर 2008 के लिए आवश्यक आर 2। फिर)
मैं एक विश्लेषणात्मक समेकित फ़ंक्शन उस के लिए ऐसा करते हैं खोजने के लिए उम्मीद कर रही थी करने की अनुमति देगा भी नहीं मिलता है मुझे, कुछ की तरह ...
LAST_VALUE(price) OVER (PARTITION BY product_id ORDER BY timestamp)
लेकिन मैं किसी भी तरह से एक "संचयी नवीनतम गैर शून्य मान" विंडो में (पूर्ववर्ती पंक्तियों को खिड़की के लिए बाध्य करने के लिए क्या करना है, बजाय खोजने के लिए प्रतीत नहीं संपूर्ण विभाजन)
तालिका-मूल्यवान उपयोगकर्ता परिभाषित फ़ंक्शन बनाने के अलावा, मैं क्या कोई ऐसा अंतर्निहित है जो इसे पूरा करेगा?
अद्यतन:
जाहिर है, इस सुविधा के उपलब्ध 'डेनलि' CTP में है, लेकिन एसक्यूएल सर्वर 2008 R2 में नहीं।
LAST_VALUE http://msdn.microsoft.com/en-us/library/hh231517%28v=SQL.110%29.aspx
मैं सिर्फ यह एसक्यूएल सर्वर 2008 यह Oracle में उपलब्ध है (के बाद से 10gR2 कम से कम) में उपलब्ध होने की उम्मीद है, और मैं MySQL 5.1 में इसी तरह कुछ कर सकते हैं, एक स्थानीय चर का उपयोग कर।
http://download.oracle.com/docs/cd/E14072_01/server.112/e10592/functions083.htm
कौन सा समारोह आप मतलब है कि डेनलि में उपलब्ध है, लेकिन नहीं 2008 R2 ?? –