/ / गठबंधन: वैल्यू कोड अपडेट करना (केस स्टेटमेंट, इनर जॉइन के साथ) - sql, sql-server, sql-server 2012

संयोजन: वैल्यू कोड अपडेट करना (केस स्टेटमेंट के साथ, इनर जॉइन के साथ) - एसक्यूएल, एसक्यूएल-सर्वर, एसक्यूएल-सर्वर -2012

हर कोई

मैं निम्नलिखित कोड है:

update New_Clients_Report set
YTD_Jan13 = (case   when StatementID>="01.01.2013" then "New from Jan-13"
else "Repead" end)
from New_Clients_Report so inner join MonthSales_NC nc
on so.ClientID=nc.NewClientID and nc.NewClientDate="01.01.2013"

update New_Clients_Report set
YTD_Jan13 = (case   when StatementID>="02.01.2013" then "New from Feb-13"
else "Repead" end)
from New_Clients_Report so inner join MonthSales_NC nc
on so.ClientID=nc.NewClientID and nc.NewClientDate="02.01.2013"

update New_Clients_Report set
YTD_Jan13 = (case   when StatementID>="03.01.2013" then "New from Mar-13"
else "Repead" end)
from New_Clients_Report so inner join MonthSales_NC nc
on so.ClientID=nc.NewClientID and nc.NewClientDate="03.01.2013"

और इसलिए अनटाइल 05.01.2014 को

कोड अच्छी तरह से काम करता है, अगर मैं अलग से चल रहा हूं।

जानकारी जोड़ें: 1) "जनवरी -14 से नया" उन ग्राहकों के लिए जो जनवरी, 2014 से हमारे साथ काम कर रहे हैं; 2) उन ग्राहकों के लिए "फरवरी से नया फ़रवरी", जो हमारे साथ फरवरी, 2014 से काम कर रहे हैं; 3) "मार्च -14 से नया" उन ग्राहकों के लिए जो मार्च, 2014 से हमारे साथ काम कर रहे हैं

मैं इन कोड को एक में मिलाना चाहता हूं अग्रिम में धन्यवाद

उत्तर:

उत्तर № 1 के लिए 1

यदि आप जनवरी, 2014 से काम कर रहे उन ग्राहकों के लिए "जनवरी -14 से नया" पर विचार कर रहे हैं और यह भी कि जनवरी, 2014 की तुलना में उनका स्टेटमेंट अधिक है तो आप अपडेट स्टेटमेंट निम्नानुसार लिख सकते हैं:

update New_Clients_Report set
YTD_Jan13 = (case   when StatementID>=NewClientDate then "New from "
+ REPLACE(RIGHT(CONVERT(VARCHAR(9), NewClientDate, 6), 6), " ", "-")
else "Repead" end)
from New_Clients_Report so inner join MonthSales_NC nc
on so.ClientID=nc.NewClientID
--and nc.NewClientDate="01.01.2013"

चेक डेमो यहाँ।