/ / Kombinovať: aktualizácia kódu hodnôt (pomocou príkazu Case, Inner Join) - sql, sql-server, sql-server-2012

Kombinácia: aktualizácia kódu hodnôt (s príkazom Case, Inner Join) - sql, sql-server, sql-server-2012

každý

Mám nasledujúce kódy:

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"

A tak do 05.01.2014

Kód funguje dobre, ak pracujem samostatne.

pridať informácie: 1) „Nové od 14. januára“ pre klientov, ktorí s nami spolupracujú od januára 2014; 2) „Nové od 14. februára“ pre klientov, ktorí s nami pracujú od februára 2014; 3) „Nové od 14. marca“ pre klientov, ktorí s nami pracujú od marca 2014

Chcem skombinovať tento kód do jedného vopred ďakujem

odpovede:

1 pre odpoveď č. 1

Ak zvažujete možnosť „Noví od 14. januára“ pre klientov, ktorí pracujú od januára 2014 a tiež, že ich identifikátor Statement je väčší ako január 2014, môžete aktualizačný príkaz napísať takto:

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"

check Ukážka tu.