10.카테고리필터생성(최종)_배치적용해야함.sql 130 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861
  1. TRUNCATE TABLE TB_CATE_FILTER_TMP;
  2. -- 브랜드별 / 카테고리번호 0 / 정상이월 구분 o
  3. -- 사이즈 필터 생성
  4. INSERT INTO TB_CATE_FILTER_TMP (
  5. SITE_CD
  6. , CATE_GB
  7. , FORMAL_GB
  8. , BRAND_GROUP_NO
  9. , CATE_NO
  10. , FILTER_GB
  11. , FILTER_CD
  12. , FILTER_NM
  13. , DISP_ORD
  14. )
  15. WITH TAB_FILTER AS (
  16. SELECT C4.SITE_CD
  17. , C4.CATE_GB
  18. , G.FORMAL_GB
  19. , B.BRAND_GROUP_NO
  20. , C4.CATE1_NO
  21. , C4.CATE2_NO
  22. , C4.CATE3_NO
  23. , C4.CATE4_NO
  24. , C4.CATE5_NO
  25. , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
  26. , S.OPT_CD2 AS FILTER_NM
  27. FROM TB_CATE_4SRCH C4
  28. , TB_CATE_GOODS CG
  29. , TB_GOODS G
  30. , TB_ITEMKIND I
  31. , VW_STOCK S
  32. , TB_BRAND B
  33. , TB_SITE_BRAND SB
  34. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  35. -- AND CG.BRAND_GROUP_NO = 0
  36. -- and b.BRAND_GROUP_NO = 24555
  37. AND CG.GOODS_CD = G.GOODS_CD
  38. AND G.ITEMKIND_CD = I.ITEMKIND_CD
  39. AND G.GOODS_CD = S.GOODS_CD
  40. AND G.BRAND_CD = B.BRAND_CD
  41. AND B.BRAND_CD = SB.BRAND_CD
  42. AND C4.SITE_CD = 'G000_10'
  43. AND C4.CATE_GB = 'G032_101'
  44. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  45. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  46. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  47. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  48. AND I.SIZE_GB IS NOT NULL
  49. AND S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는옵션*/
  50. AND S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  51. AND S.DISP_YN = 'Y' /*노출하는 옵션*/
  52. AND LENGTH(S.OPT_CD2) > 0
  53. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  54. AND SB.SITE_CD = 'G000_10'
  55. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  56. )
  57. SELECT distinct SITE_CD
  58. , CATE_GB
  59. , FORMAL_GB
  60. , BRAND_GROUP_NO
  61. , CATE_NO
  62. , 'SIZE' AS FILTER_GB
  63. , FILTER_CD
  64. , FILTER_NM
  65. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  66. ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
  67. WHEN FILTER_CD LIKE 'B%' THEN 2
  68. WHEN FILTER_CD LIKE 'S%' THEN 3
  69. ELSE 4
  70. END, FILTER_NM
  71. ) AS DISP_ORD
  72. FROM (
  73. SELECT DISTINCT
  74. SITE_CD
  75. , CATE_GB
  76. , FORMAL_GB
  77. , BRAND_GROUP_NO
  78. , CATE_NO
  79. , FILTER_CD
  80. , FILTER_NM
  81. FROM (
  82. SELECT SITE_CD
  83. , CATE_GB
  84. , 'G009_10' AS FORMAL_GB
  85. , BRAND_GROUP_NO
  86. , 0 AS CATE_NO
  87. , FILTER_CD
  88. , FILTER_NM
  89. FROM TAB_FILTER
  90. WHERE CATE5_NO IS NOT NULL
  91. AND FORMAL_GB IN ('G009_10','G009_20')
  92. UNION ALL
  93. SELECT SITE_CD
  94. , CATE_GB
  95. , 'G009_10' AS FORMAL_GB
  96. , BRAND_GROUP_NO
  97. , 0 AS CATE_NO
  98. , FILTER_CD
  99. , FILTER_NM
  100. FROM TAB_FILTER
  101. WHERE CATE4_NO IS NOT NULL
  102. AND FORMAL_GB IN ('G009_10','G009_20')
  103. UNION ALL
  104. SELECT SITE_CD
  105. , CATE_GB
  106. , 'G009_10' AS FORMAL_GB
  107. , BRAND_GROUP_NO
  108. , 0 AS CATE_NO
  109. , FILTER_CD
  110. , FILTER_NM
  111. FROM TAB_FILTER
  112. WHERE CATE3_NO IS NOT NULL
  113. AND FORMAL_GB IN ('G009_10','G009_20')
  114. UNION ALL
  115. SELECT SITE_CD
  116. , CATE_GB
  117. , 'G009_10' AS FORMAL_GB
  118. , BRAND_GROUP_NO
  119. , 0 AS CATE_NO
  120. , FILTER_CD
  121. , FILTER_NM
  122. FROM TAB_FILTER
  123. WHERE CATE2_NO IS NOT NULL
  124. AND FORMAL_GB IN ('G009_10','G009_20')
  125. UNION ALL
  126. SELECT SITE_CD
  127. , CATE_GB
  128. , 'G009_10' AS FORMAL_GB
  129. , BRAND_GROUP_NO
  130. , 0 AS CATE_NO
  131. , FILTER_CD
  132. , FILTER_NM
  133. FROM TAB_FILTER
  134. WHERE CATE1_NO IS NOT NULL
  135. AND FORMAL_GB IN ('G009_10','G009_20')
  136. UNION ALL
  137. SELECT SITE_CD
  138. , CATE_GB
  139. , FORMAL_GB
  140. , BRAND_GROUP_NO
  141. , 0 AS CATE_NO
  142. , FILTER_CD
  143. , FILTER_NM
  144. FROM TAB_FILTER
  145. WHERE CATE5_NO IS NOT NULL
  146. AND FORMAL_GB = 'G009_20'
  147. UNION ALL
  148. SELECT SITE_CD
  149. , CATE_GB
  150. , FORMAL_GB
  151. , BRAND_GROUP_NO
  152. , 0 AS CATE_NO
  153. , FILTER_CD
  154. , FILTER_NM
  155. FROM TAB_FILTER
  156. WHERE CATE4_NO IS NOT NULL
  157. AND FORMAL_GB = 'G009_20'
  158. UNION ALL
  159. SELECT SITE_CD
  160. , CATE_GB
  161. , FORMAL_GB
  162. , BRAND_GROUP_NO
  163. , 0 AS CATE_NO
  164. , FILTER_CD
  165. , FILTER_NM
  166. FROM TAB_FILTER
  167. WHERE CATE3_NO IS NOT NULL
  168. AND FORMAL_GB = 'G009_20'
  169. UNION ALL
  170. SELECT SITE_CD
  171. , CATE_GB
  172. , FORMAL_GB
  173. , BRAND_GROUP_NO
  174. , 0 AS CATE_NO
  175. , FILTER_CD
  176. , FILTER_NM
  177. FROM TAB_FILTER
  178. WHERE CATE2_NO IS NOT NULL
  179. AND FORMAL_GB = 'G009_20'
  180. UNION ALL
  181. SELECT SITE_CD
  182. , CATE_GB
  183. , FORMAL_GB
  184. , BRAND_GROUP_NO
  185. , 0 AS CATE_NO
  186. , FILTER_CD
  187. , FILTER_NM
  188. FROM TAB_FILTER
  189. WHERE CATE1_NO IS NOT NULL
  190. AND FORMAL_GB = 'G009_20'
  191. ) Z
  192. WHERE CATE_NO IS NOT NULL
  193. ) Z
  194. ;
  195. -- 가격 필터 생성(브랜드별 전체)
  196. INSERT INTO TB_CATE_FILTER_TMP (
  197. SITE_CD
  198. , CATE_GB
  199. , FORMAL_GB
  200. , BRAND_GROUP_NO
  201. , CATE_NO
  202. , FILTER_GB
  203. , FILTER_CD
  204. , FILTER_NM
  205. , DISP_ORD
  206. )
  207. WITH TAB_FILTER AS (
  208. SELECT C4.SITE_CD
  209. , C4.CATE_GB
  210. , G.FORMAL_GB
  211. , B.BRAND_GROUP_NO
  212. , C4.CATE1_NO
  213. , C4.CATE2_NO
  214. , C4.CATE3_NO
  215. , C4.CATE4_NO
  216. , C4.CATE5_NO
  217. , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
  218. FROM TB_CATE_4SRCH C4
  219. , TB_CATE_GOODS CG
  220. , TB_GOODS G
  221. , TB_GOODS_STOCK GS
  222. , TB_BRAND B
  223. , TB_SITE_BRAND SB
  224. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  225. -- and b.brand_group_no = 19706
  226. AND CG.GOODS_CD = G.GOODS_CD
  227. AND CG.GOODS_CD = GS.GOODS_CD
  228. AND G.BRAND_CD = B.BRAND_CD
  229. AND B.BRAND_CD = SB.BRAND_CD
  230. AND C4.SITE_CD = 'G000_10'
  231. AND C4.CATE_GB = 'G032_101'
  232. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  233. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  234. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  235. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  236. AND GS.STOCK_QTY > 0 /*재고있는옵션*/
  237. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  238. AND SB.SITE_CD = 'G000_10'
  239. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  240. )
  241. , TAB_PRICE AS (
  242. SELECT SITE_CD
  243. , CATE_GB
  244. , 'G009_10' AS FORMAL_GB
  245. , BRAND_GROUP_NO
  246. , CATE_NO
  247. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  248. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  249. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  250. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  251. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  252. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  253. FROM (
  254. SELECT SITE_CD
  255. , CATE_GB
  256. , BRAND_GROUP_NO
  257. , 0 AS CATE_NO
  258. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  259. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  260. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  261. FROM TAB_FILTER
  262. WHERE FORMAL_GB IN ('G009_10','G009_20')
  263. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO
  264. ) Z
  265. UNION ALL
  266. SELECT SITE_CD
  267. , CATE_GB
  268. , 'G009_20' AS FORMAL_GB
  269. , BRAND_GROUP_NO
  270. , CATE_NO
  271. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  272. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  273. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  274. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  275. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  276. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  277. FROM (
  278. SELECT SITE_CD
  279. , CATE_GB
  280. , BRAND_GROUP_NO
  281. , 0 AS CATE_NO
  282. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  283. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  284. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  285. FROM TAB_FILTER
  286. WHERE FORMAL_GB IN ('G009_20')
  287. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO
  288. ) Z
  289. )
  290. SELECT DISTINCT
  291. SITE_CD
  292. , CATE_GB
  293. , FORMAL_GB
  294. , BRAND_GROUP_NO
  295. , CATE_NO
  296. , 'PRICE' AS FILTER_GB
  297. , FILTER_CD
  298. , FILTER_NM
  299. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  300. ORDER BY FILTER_CD
  301. ) AS DISP_ORD
  302. FROM (
  303. SELECT SITE_CD
  304. , CATE_GB
  305. , FORMAL_GB
  306. , BRAND_GROUP_NO
  307. , CATE_NO
  308. , PRICE1 AS FILTER_CD
  309. , PRICE1 AS FILTER_NM
  310. FROM TAB_PRICE
  311. WHERE PRICE1 > 0
  312. UNION ALL
  313. SELECT SITE_CD
  314. , CATE_GB
  315. , FORMAL_GB
  316. , BRAND_GROUP_NO
  317. , CATE_NO
  318. , PRICE2 AS FILTER_CD
  319. , PRICE2 AS FILTER_NM
  320. FROM TAB_PRICE
  321. WHERE PRICE2 > 0
  322. UNION ALL
  323. SELECT SITE_CD
  324. , CATE_GB
  325. , FORMAL_GB
  326. , BRAND_GROUP_NO
  327. , CATE_NO
  328. , PRICE3 AS FILTER_CD
  329. , PRICE3 AS FILTER_NM
  330. FROM TAB_PRICE
  331. WHERE PRICE3 > 0
  332. UNION ALL
  333. SELECT SITE_CD
  334. , CATE_GB
  335. , FORMAL_GB
  336. , BRAND_GROUP_NO
  337. , CATE_NO
  338. , PRICE4 AS FILTER_CD
  339. , PRICE4 AS FILTER_NM
  340. FROM TAB_PRICE
  341. WHERE PRICE4 > 0
  342. UNION ALL
  343. SELECT SITE_CD
  344. , CATE_GB
  345. , FORMAL_GB
  346. , BRAND_GROUP_NO
  347. , CATE_NO
  348. , PRICE5 AS FILTER_CD
  349. , PRICE5 AS FILTER_NM
  350. FROM TAB_PRICE
  351. WHERE PRICE5 > 0
  352. UNION ALL
  353. SELECT SITE_CD
  354. , CATE_GB
  355. , FORMAL_GB
  356. , BRAND_GROUP_NO
  357. , CATE_NO
  358. , PRICE6 AS FILTER_CD
  359. , PRICE6 AS FILTER_NM
  360. FROM TAB_PRICE
  361. WHERE PRICE6 > 0
  362. ) Z
  363. ;
  364. -- 연령대 필터 생성
  365. INSERT INTO TB_CATE_FILTER_TMP (
  366. SITE_CD
  367. , CATE_GB
  368. , FORMAL_GB
  369. , BRAND_GROUP_NO
  370. , CATE_NO
  371. , FILTER_GB
  372. , FILTER_CD
  373. , FILTER_NM
  374. , DISP_ORD
  375. )
  376. WITH TAB_FILTER AS (
  377. SELECT C4.SITE_CD
  378. , C4.CATE_GB
  379. , G.FORMAL_GB
  380. , B.BRAND_GROUP_NO
  381. , C4.CATE1_NO
  382. , C4.CATE2_NO
  383. , C4.CATE3_NO
  384. , C4.CATE4_NO
  385. , C4.CATE5_NO
  386. , G.AGE_GRP_CD AS FILTER_CD
  387. FROM TB_CATE_4SRCH C4
  388. , TB_CATE_GOODS CG
  389. , TB_GOODS G
  390. , TB_GOODS_STOCK GS
  391. , TB_BRAND B
  392. , TB_SITE_BRAND SB
  393. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  394. -- AND CG.BRAND_GROUP_NO = 0
  395. -- and B.BRAND_GROUP_NO = 19706
  396. AND CG.GOODS_CD = G.GOODS_CD
  397. AND CG.GOODS_CD = GS.GOODS_CD
  398. AND G.BRAND_CD = B.BRAND_CD
  399. AND B.BRAND_CD = SB.BRAND_CD
  400. AND C4.SITE_CD = 'G000_10'
  401. AND C4.CATE_GB = 'G032_101'
  402. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  403. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  404. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  405. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  406. AND G.AGE_GRP_CD IS NOT NULL
  407. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  408. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  409. AND SB.SITE_CD = 'G000_10'
  410. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  411. )
  412. SELECT A.SITE_CD
  413. , A.CATE_GB
  414. , A.FORMAL_GB
  415. , A.BRAND_GROUP_NO
  416. , A.CATE_NO
  417. , 'AGE' AS FILTER_GB
  418. , A.FILTER_CD
  419. , CC.CD_NM AS FILTER_NM
  420. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  421. ORDER BY CC.DISP_ORD
  422. ) AS DISP_ORD
  423. FROM (
  424. SELECT DISTINCT
  425. SITE_CD
  426. , CATE_GB
  427. , FORMAL_GB
  428. , BRAND_GROUP_NO
  429. , 0 AS CATE_NO
  430. , FILTER_CD
  431. FROM (
  432. SELECT SITE_CD
  433. , CATE_GB
  434. , 'G009_10' AS FORMAL_GB
  435. , BRAND_GROUP_NO
  436. , CATE5_NO AS CATE_NO
  437. , FILTER_CD
  438. FROM TAB_FILTER
  439. WHERE CATE5_NO IS NOT NULL
  440. AND FORMAL_GB IN ('G009_10','G009_20')
  441. UNION ALL
  442. SELECT SITE_CD
  443. , CATE_GB
  444. , 'G009_10' AS FORMAL_GB
  445. , BRAND_GROUP_NO
  446. , CATE4_NO AS CATE_NO
  447. , FILTER_CD
  448. FROM TAB_FILTER
  449. WHERE CATE4_NO IS NOT NULL
  450. AND FORMAL_GB IN ('G009_10','G009_20')
  451. UNION ALL
  452. SELECT SITE_CD
  453. , CATE_GB
  454. , 'G009_10' AS FORMAL_GB
  455. , BRAND_GROUP_NO
  456. , CATE3_NO AS CATE_NO
  457. , FILTER_CD
  458. FROM TAB_FILTER
  459. WHERE CATE3_NO IS NOT NULL
  460. AND FORMAL_GB IN ('G009_10','G009_20')
  461. UNION ALL
  462. SELECT SITE_CD
  463. , CATE_GB
  464. , 'G009_10' AS FORMAL_GB
  465. , BRAND_GROUP_NO
  466. , CATE2_NO AS CATE_NO
  467. , FILTER_CD
  468. FROM TAB_FILTER
  469. WHERE CATE2_NO IS NOT NULL
  470. AND FORMAL_GB IN ('G009_10','G009_20')
  471. UNION ALL
  472. SELECT SITE_CD
  473. , CATE_GB
  474. , 'G009_10' AS FORMAL_GB
  475. , BRAND_GROUP_NO
  476. , CATE1_NO AS CATE_NO
  477. , FILTER_CD
  478. FROM TAB_FILTER
  479. WHERE CATE1_NO IS NOT NULL
  480. AND FORMAL_GB IN ('G009_10','G009_20')
  481. UNION ALL
  482. SELECT SITE_CD
  483. , CATE_GB
  484. , FORMAL_GB
  485. , BRAND_GROUP_NO
  486. , CATE5_NO AS CATE_NO
  487. , FILTER_CD
  488. FROM TAB_FILTER
  489. WHERE CATE5_NO IS NOT NULL
  490. AND FORMAL_GB = 'G009_20'
  491. UNION ALL
  492. SELECT SITE_CD
  493. , CATE_GB
  494. , FORMAL_GB
  495. , BRAND_GROUP_NO
  496. , CATE4_NO AS CATE_NO
  497. , FILTER_CD
  498. FROM TAB_FILTER
  499. WHERE CATE4_NO IS NOT NULL
  500. AND FORMAL_GB = 'G009_20'
  501. UNION ALL
  502. SELECT SITE_CD
  503. , CATE_GB
  504. , FORMAL_GB
  505. , BRAND_GROUP_NO
  506. , CATE3_NO AS CATE_NO
  507. , FILTER_CD
  508. FROM TAB_FILTER
  509. WHERE CATE3_NO IS NOT NULL
  510. AND FORMAL_GB = 'G009_20'
  511. UNION ALL
  512. SELECT SITE_CD
  513. , CATE_GB
  514. , FORMAL_GB
  515. , BRAND_GROUP_NO
  516. , CATE2_NO AS CATE_NO
  517. , FILTER_CD
  518. FROM TAB_FILTER
  519. WHERE CATE2_NO IS NOT NULL
  520. AND FORMAL_GB = 'G009_20'
  521. UNION ALL
  522. SELECT SITE_CD
  523. , CATE_GB
  524. , FORMAL_GB
  525. , BRAND_GROUP_NO
  526. , CATE1_NO AS CATE_NO
  527. , FILTER_CD
  528. FROM TAB_FILTER
  529. WHERE CATE1_NO IS NOT NULL
  530. AND FORMAL_GB = 'G009_20'
  531. ) Z
  532. WHERE CATE_NO IS NOT NULL
  533. ) A
  534. , TB_COMMON_CODE CC
  535. WHERE A.FILTER_CD = CC.CD
  536. AND CC.CD_GB = 'G023'
  537. AND CC.USE_YN = 'Y'
  538. ;
  539. -- 시즌 필터 생성
  540. INSERT INTO TB_CATE_FILTER_TMP (
  541. SITE_CD
  542. , CATE_GB
  543. , FORMAL_GB
  544. , BRAND_GROUP_NO
  545. , CATE_NO
  546. , FILTER_GB
  547. , FILTER_CD
  548. , FILTER_NM
  549. , DISP_ORD
  550. )
  551. WITH TAB_FILTER AS (
  552. SELECT C4.SITE_CD
  553. , C4.CATE_GB
  554. , G.FORMAL_GB
  555. , B.BRAND_GROUP_NO
  556. , C4.CATE1_NO
  557. , C4.CATE2_NO
  558. , C4.CATE3_NO
  559. , C4.CATE4_NO
  560. , C4.CATE5_NO
  561. , G.SEASON_CD AS FILTER_CD
  562. FROM TB_CATE_4SRCH C4
  563. , TB_CATE_GOODS CG
  564. , TB_GOODS G
  565. , TB_GOODS_STOCK GS
  566. , TB_BRAND B
  567. , TB_SITE_BRAND SB
  568. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  569. -- AND CG.BRAND_GROUP_NO = 0
  570. -- and B.BRAND_GROUP_NO = 19706
  571. AND CG.GOODS_CD = G.GOODS_CD
  572. AND CG.GOODS_CD = GS.GOODS_CD
  573. AND G.BRAND_CD = B.BRAND_CD
  574. AND B.BRAND_CD = SB.BRAND_CD
  575. AND C4.SITE_CD = 'G000_10'
  576. AND C4.CATE_GB = 'G032_101'
  577. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  578. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  579. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  580. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  581. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  582. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  583. AND SB.SITE_CD = 'G000_10'
  584. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  585. )
  586. SELECT A.SITE_CD
  587. , A.CATE_GB
  588. , A.FORMAL_GB
  589. , A.BRAND_GROUP_NO
  590. , A.CATE_NO
  591. , 'SEASON' AS FILTER_GB
  592. , A.FILTER_CD
  593. , CC.CD_NM AS FILTER_NM
  594. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  595. ORDER BY CC.DISP_ORD
  596. ) AS DISP_ORD
  597. FROM (
  598. SELECT DISTINCT
  599. SITE_CD
  600. , CATE_GB
  601. , FORMAL_GB
  602. , BRAND_GROUP_NO
  603. , 0 AS CATE_NO
  604. , FILTER_CD
  605. FROM (
  606. SELECT SITE_CD
  607. , CATE_GB
  608. , 'G009_10' AS FORMAL_GB
  609. , BRAND_GROUP_NO
  610. , CATE5_NO AS CATE_NO
  611. , FILTER_CD
  612. FROM TAB_FILTER
  613. WHERE CATE5_NO IS NOT NULL
  614. AND FORMAL_GB IN ('G009_10','G009_20')
  615. UNION ALL
  616. SELECT SITE_CD
  617. , CATE_GB
  618. , 'G009_10' AS FORMAL_GB
  619. , BRAND_GROUP_NO
  620. , CATE4_NO AS CATE_NO
  621. , FILTER_CD
  622. FROM TAB_FILTER
  623. WHERE CATE4_NO IS NOT NULL
  624. AND FORMAL_GB IN ('G009_10','G009_20')
  625. UNION ALL
  626. SELECT SITE_CD
  627. , CATE_GB
  628. , 'G009_10' AS FORMAL_GB
  629. , BRAND_GROUP_NO
  630. , CATE3_NO AS CATE_NO
  631. , FILTER_CD
  632. FROM TAB_FILTER
  633. WHERE CATE3_NO IS NOT NULL
  634. AND FORMAL_GB IN ('G009_10','G009_20')
  635. UNION ALL
  636. SELECT SITE_CD
  637. , CATE_GB
  638. , 'G009_10' AS FORMAL_GB
  639. , BRAND_GROUP_NO
  640. , CATE2_NO AS CATE_NO
  641. , FILTER_CD
  642. FROM TAB_FILTER
  643. WHERE CATE2_NO IS NOT NULL
  644. AND FORMAL_GB IN ('G009_10','G009_20')
  645. UNION ALL
  646. SELECT SITE_CD
  647. , CATE_GB
  648. , 'G009_10' AS FORMAL_GB
  649. , BRAND_GROUP_NO
  650. , CATE1_NO AS CATE_NO
  651. , FILTER_CD
  652. FROM TAB_FILTER
  653. WHERE CATE1_NO IS NOT NULL
  654. AND FORMAL_GB IN ('G009_10','G009_20')
  655. UNION ALL
  656. SELECT SITE_CD
  657. , CATE_GB
  658. , FORMAL_GB
  659. , BRAND_GROUP_NO
  660. , CATE5_NO AS CATE_NO
  661. , FILTER_CD
  662. FROM TAB_FILTER
  663. WHERE CATE5_NO IS NOT NULL
  664. AND FORMAL_GB = 'G009_20'
  665. UNION ALL
  666. SELECT SITE_CD
  667. , CATE_GB
  668. , FORMAL_GB
  669. , BRAND_GROUP_NO
  670. , CATE4_NO AS CATE_NO
  671. , FILTER_CD
  672. FROM TAB_FILTER
  673. WHERE CATE4_NO IS NOT NULL
  674. AND FORMAL_GB = 'G009_20'
  675. UNION ALL
  676. SELECT SITE_CD
  677. , CATE_GB
  678. , FORMAL_GB
  679. , BRAND_GROUP_NO
  680. , CATE3_NO AS CATE_NO
  681. , FILTER_CD
  682. FROM TAB_FILTER
  683. WHERE CATE3_NO IS NOT NULL
  684. AND FORMAL_GB = 'G009_20'
  685. UNION ALL
  686. SELECT SITE_CD
  687. , CATE_GB
  688. , FORMAL_GB
  689. , BRAND_GROUP_NO
  690. , CATE2_NO AS CATE_NO
  691. , FILTER_CD
  692. FROM TAB_FILTER
  693. WHERE CATE2_NO IS NOT NULL
  694. AND FORMAL_GB = 'G009_20'
  695. UNION ALL
  696. SELECT SITE_CD
  697. , CATE_GB
  698. , FORMAL_GB
  699. , BRAND_GROUP_NO
  700. , CATE1_NO AS CATE_NO
  701. , FILTER_CD
  702. FROM TAB_FILTER
  703. WHERE CATE1_NO IS NOT NULL
  704. AND FORMAL_GB = 'G009_20'
  705. ) Z
  706. WHERE CATE_NO IS NOT NULL
  707. ) A
  708. , TB_COMMON_CODE CC
  709. WHERE A.FILTER_CD = CC.CD
  710. AND CC.CD_GB = 'G006'
  711. AND CC.USE_YN = 'Y'
  712. ;
  713. -- 색상 필터 생성
  714. INSERT INTO TB_CATE_FILTER_TMP (
  715. SITE_CD
  716. , CATE_GB
  717. , FORMAL_GB
  718. , BRAND_GROUP_NO
  719. , CATE_NO
  720. , FILTER_GB
  721. , FILTER_CD
  722. , FILTER_NM
  723. , DISP_ORD
  724. )
  725. WITH TAB_FILTER AS (
  726. SELECT C4.SITE_CD
  727. , C4.CATE_GB
  728. , G.FORMAL_GB
  729. , B.BRAND_GROUP_NO
  730. , C4.CATE1_NO
  731. , C4.CATE2_NO
  732. , C4.CATE3_NO
  733. , C4.CATE4_NO
  734. , C4.CATE5_NO
  735. , C.COLOR_GRP_CD AS FILTER_CD
  736. FROM TB_CATE_4SRCH C4
  737. , TB_CATE_GOODS CG
  738. , TB_GOODS G
  739. , TB_GOODS_STOCK GS
  740. , TB_OPTION O
  741. , TB_COLOR C
  742. , TB_BRAND B
  743. , TB_SITE_BRAND SB
  744. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  745. -- AND CG.BRAND_GROUP_NO = 0
  746. -- and B.BRAND_GROUP_NO = 19706
  747. AND CG.GOODS_CD = G.GOODS_CD
  748. AND CG.GOODS_CD = GS.GOODS_CD
  749. AND CG.GOODS_CD = O.GOODS_CD
  750. AND O.OPT_CD1 = C.COLOR_CD
  751. AND G.BRAND_CD = B.BRAND_CD
  752. AND B.BRAND_CD = SB.BRAND_CD
  753. AND C4.SITE_CD = 'G000_10'
  754. AND C4.CATE_GB = 'G032_101'
  755. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  756. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  757. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  758. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  759. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  760. AND O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  761. AND O.DISP_YN = 'Y' /*노출하는 옵션*/
  762. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  763. AND SB.SITE_CD = 'G000_10'
  764. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  765. )
  766. SELECT A.SITE_CD
  767. , A.CATE_GB
  768. , A.FORMAL_GB
  769. , A.BRAND_GROUP_NO
  770. , A.CATE_NO
  771. , 'COLOR' AS FILTER_GB
  772. , A.FILTER_CD
  773. , CC.CD_DESC AS FILTER_NM
  774. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  775. ORDER BY CC.DISP_ORD
  776. ) AS DISP_ORD
  777. FROM (
  778. SELECT DISTINCT
  779. SITE_CD
  780. , CATE_GB
  781. , FORMAL_GB
  782. , BRAND_GROUP_NO
  783. , 0 as CATE_NO
  784. , FILTER_CD
  785. FROM (
  786. SELECT SITE_CD
  787. , CATE_GB
  788. , 'G009_10' AS FORMAL_GB
  789. , BRAND_GROUP_NO
  790. , CATE5_NO AS CATE_NO
  791. , FILTER_CD
  792. FROM TAB_FILTER
  793. WHERE CATE5_NO IS NOT NULL
  794. AND FORMAL_GB IN ('G009_10','G009_20')
  795. UNION ALL
  796. SELECT SITE_CD
  797. , CATE_GB
  798. , 'G009_10' AS FORMAL_GB
  799. , BRAND_GROUP_NO
  800. , CATE4_NO AS CATE_NO
  801. , FILTER_CD
  802. FROM TAB_FILTER
  803. WHERE CATE4_NO IS NOT NULL
  804. AND FORMAL_GB IN ('G009_10','G009_20')
  805. UNION ALL
  806. SELECT SITE_CD
  807. , CATE_GB
  808. , 'G009_10' AS FORMAL_GB
  809. , BRAND_GROUP_NO
  810. , CATE3_NO AS CATE_NO
  811. , FILTER_CD
  812. FROM TAB_FILTER
  813. WHERE CATE3_NO IS NOT NULL
  814. AND FORMAL_GB IN ('G009_10','G009_20')
  815. UNION ALL
  816. SELECT SITE_CD
  817. , CATE_GB
  818. , 'G009_10' AS FORMAL_GB
  819. , BRAND_GROUP_NO
  820. , CATE2_NO AS CATE_NO
  821. , FILTER_CD
  822. FROM TAB_FILTER
  823. WHERE CATE2_NO IS NOT NULL
  824. AND FORMAL_GB IN ('G009_10','G009_20')
  825. UNION ALL
  826. SELECT SITE_CD
  827. , CATE_GB
  828. , 'G009_10' AS FORMAL_GB
  829. , BRAND_GROUP_NO
  830. , CATE1_NO AS CATE_NO
  831. , FILTER_CD
  832. FROM TAB_FILTER
  833. WHERE CATE1_NO IS NOT NULL
  834. AND FORMAL_GB IN ('G009_10','G009_20')
  835. UNION ALL
  836. SELECT SITE_CD
  837. , CATE_GB
  838. , FORMAL_GB
  839. , BRAND_GROUP_NO
  840. , CATE5_NO AS CATE_NO
  841. , FILTER_CD
  842. FROM TAB_FILTER
  843. WHERE CATE5_NO IS NOT NULL
  844. AND FORMAL_GB = 'G009_20'
  845. UNION ALL
  846. SELECT SITE_CD
  847. , CATE_GB
  848. , FORMAL_GB
  849. , BRAND_GROUP_NO
  850. , CATE4_NO AS CATE_NO
  851. , FILTER_CD
  852. FROM TAB_FILTER
  853. WHERE CATE4_NO IS NOT NULL
  854. AND FORMAL_GB = 'G009_20'
  855. UNION ALL
  856. SELECT SITE_CD
  857. , CATE_GB
  858. , FORMAL_GB
  859. , BRAND_GROUP_NO
  860. , CATE3_NO AS CATE_NO
  861. , FILTER_CD
  862. FROM TAB_FILTER
  863. WHERE CATE3_NO IS NOT NULL
  864. AND FORMAL_GB = 'G009_20'
  865. UNION ALL
  866. SELECT SITE_CD
  867. , CATE_GB
  868. , FORMAL_GB
  869. , BRAND_GROUP_NO
  870. , CATE2_NO AS CATE_NO
  871. , FILTER_CD
  872. FROM TAB_FILTER
  873. WHERE CATE2_NO IS NOT NULL
  874. AND FORMAL_GB = 'G009_20'
  875. UNION ALL
  876. SELECT SITE_CD
  877. , CATE_GB
  878. , FORMAL_GB
  879. , BRAND_GROUP_NO
  880. , CATE1_NO AS CATE_NO
  881. , FILTER_CD
  882. FROM TAB_FILTER
  883. WHERE CATE1_NO IS NOT NULL
  884. AND FORMAL_GB = 'G009_20'
  885. ) Z
  886. WHERE CATE_NO IS NOT NULL
  887. ) A
  888. , TB_COMMON_CODE CC
  889. WHERE A.FILTER_CD = CC.CD
  890. AND CC.CD_GB = 'G072'
  891. AND CC.USE_YN = 'Y'
  892. ;
  893. -- 혜택 필터 생성
  894. INSERT INTO TB_CATE_FILTER_TMP (
  895. SITE_CD
  896. , CATE_GB
  897. , FORMAL_GB
  898. , BRAND_GROUP_NO
  899. , CATE_NO
  900. , FILTER_GB
  901. , FILTER_CD
  902. , FILTER_NM
  903. , DISP_ORD
  904. )
  905. WITH TAB_FILTER AS (
  906. SELECT C4.SITE_CD
  907. , C4.CATE_GB
  908. , G.FORMAL_GB
  909. , B.BRAND_GROUP_NO
  910. , C4.CATE1_NO
  911. , C4.CATE2_NO
  912. , C4.CATE3_NO
  913. , C4.CATE4_NO
  914. , C4.CATE5_NO
  915. , G.GOODS_CD
  916. , GB.BENEFIT_GB
  917. FROM TB_CATE_4SRCH C4
  918. , TB_CATE_GOODS CG
  919. , TB_GOODS G
  920. , TB_GOODS_STOCK GS
  921. , TB_GOODS_BENEFIT GB
  922. , TB_BRAND B
  923. , TB_SITE_BRAND SB
  924. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  925. -- AND CG.BRAND_GROUP_NO = 0
  926. -- and B.BRAND_GROUP_NO = 19706
  927. AND CG.GOODS_CD = G.GOODS_CD
  928. AND CG.GOODS_CD = GS.GOODS_CD
  929. AND CG.GOODS_CD = GB.GOODS_CD
  930. AND G.BRAND_CD = B.BRAND_CD
  931. AND B.BRAND_CD = SB.BRAND_CD
  932. AND C4.SITE_CD = 'G000_10'
  933. AND C4.CATE_GB = 'G032_101'
  934. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  935. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  936. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  937. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  938. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  939. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  940. AND SB.SITE_CD = 'G000_10'
  941. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  942. )
  943. SELECT distinct SITE_CD
  944. , CATE_GB
  945. , FORMAL_GB
  946. , BRAND_GROUP_NO
  947. , 0 as CATE_NO
  948. , 'BENEFIT' AS FILTER_GB
  949. , FILTER_CD
  950. , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
  951. WHEN FILTER_CD = '20' THEN '무료배송'
  952. WHEN FILTER_CD = '30' THEN '사은품'
  953. WHEN FILTER_CD = '40' THEN '신상'
  954. WHEN FILTER_CD = '50' THEN '총알배송'
  955. END AS FILTER_NM
  956. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  957. ORDER BY FILTER_CD
  958. ) AS DISP_ORD
  959. FROM (
  960. SELECT DISTINCT
  961. SITE_CD
  962. , CATE_GB
  963. , 'G009_10' AS FORMAL_GB
  964. , BRAND_GROUP_NO
  965. , 0 AS CATE_NO
  966. , BENEFIT_GB AS FILTER_CD
  967. FROM TAB_FILTER
  968. WHERE CATE5_NO IS NOT NULL
  969. AND FORMAL_GB IN ('G009_10','G009_20')
  970. UNION ALL
  971. SELECT DISTINCT
  972. SITE_CD
  973. , CATE_GB
  974. , 'G009_10' AS FORMAL_GB
  975. , BRAND_GROUP_NO
  976. , 0 AS CATE_NO
  977. , BENEFIT_GB AS FILTER_CD
  978. FROM TAB_FILTER
  979. WHERE CATE4_NO IS NOT NULL
  980. AND FORMAL_GB IN ('G009_10','G009_20')
  981. UNION ALL
  982. SELECT DISTINCT
  983. SITE_CD
  984. , CATE_GB
  985. , 'G009_10' AS FORMAL_GB
  986. , BRAND_GROUP_NO
  987. , 0 AS CATE_NO
  988. , BENEFIT_GB AS FILTER_CD
  989. FROM TAB_FILTER
  990. WHERE CATE3_NO IS NOT NULL
  991. AND FORMAL_GB IN ('G009_10','G009_20')
  992. UNION ALL
  993. SELECT DISTINCT
  994. SITE_CD
  995. , CATE_GB
  996. , 'G009_10' AS FORMAL_GB
  997. , BRAND_GROUP_NO
  998. , 0 AS CATE_NO
  999. , BENEFIT_GB AS FILTER_CD
  1000. FROM TAB_FILTER
  1001. WHERE CATE2_NO IS NOT NULL
  1002. AND FORMAL_GB IN ('G009_10','G009_20')
  1003. UNION ALL
  1004. SELECT DISTINCT
  1005. SITE_CD
  1006. , CATE_GB
  1007. , 'G009_10' AS FORMAL_GB
  1008. , BRAND_GROUP_NO
  1009. , 0 AS CATE_NO
  1010. , BENEFIT_GB AS FILTER_CD
  1011. FROM TAB_FILTER
  1012. WHERE CATE1_NO IS NOT NULL
  1013. AND FORMAL_GB IN ('G009_10','G009_20')
  1014. UNION ALL
  1015. SELECT DISTINCT
  1016. SITE_CD
  1017. , CATE_GB
  1018. , FORMAL_GB
  1019. , BRAND_GROUP_NO
  1020. , 0 AS CATE_NO
  1021. , BENEFIT_GB AS FILTER_CD
  1022. FROM TAB_FILTER
  1023. WHERE CATE5_NO IS NOT NULL
  1024. AND FORMAL_GB = 'G009_20'
  1025. UNION ALL
  1026. SELECT DISTINCT
  1027. SITE_CD
  1028. , CATE_GB
  1029. , FORMAL_GB
  1030. , BRAND_GROUP_NO
  1031. , 0 AS CATE_NO
  1032. , BENEFIT_GB AS FILTER_CD
  1033. FROM TAB_FILTER
  1034. WHERE CATE4_NO IS NOT NULL
  1035. AND FORMAL_GB = 'G009_20'
  1036. UNION ALL
  1037. SELECT DISTINCT
  1038. SITE_CD
  1039. , CATE_GB
  1040. , FORMAL_GB
  1041. , BRAND_GROUP_NO
  1042. , 0 AS CATE_NO
  1043. , BENEFIT_GB AS FILTER_CD
  1044. FROM TAB_FILTER
  1045. WHERE CATE3_NO IS NOT NULL
  1046. AND FORMAL_GB = 'G009_20'
  1047. UNION ALL
  1048. SELECT DISTINCT
  1049. SITE_CD
  1050. , CATE_GB
  1051. , FORMAL_GB
  1052. , BRAND_GROUP_NO
  1053. , 0 AS CATE_NO
  1054. , BENEFIT_GB AS FILTER_CD
  1055. FROM TAB_FILTER
  1056. WHERE CATE2_NO IS NOT NULL
  1057. AND FORMAL_GB = 'G009_20'
  1058. UNION ALL
  1059. SELECT DISTINCT
  1060. SITE_CD
  1061. , CATE_GB
  1062. , FORMAL_GB
  1063. , BRAND_GROUP_NO
  1064. , 0 AS CATE_NO
  1065. , BENEFIT_GB AS FILTER_CD
  1066. FROM TAB_FILTER
  1067. WHERE CATE1_NO IS NOT NULL
  1068. AND FORMAL_GB = 'G009_20'
  1069. ) Z
  1070. ;
  1071. INSERT INTO TB_CATE_FILTER
  1072. SELECT DISTINCT SITE_CD
  1073. , CATE_GB
  1074. , FORMAL_GB
  1075. , BRAND_GROUP_NO
  1076. , CATE_NO
  1077. , FILTER_GB
  1078. , FILTER_CD
  1079. , FILTER_NM
  1080. , DISP_ORD
  1081. , 12 AS REG_NO
  1082. , NOW() AS REG_DT
  1083. FROM TB_CATE_FILTER_TMP
  1084. ;
  1085. -- 브랜드그룹번호 0 / 카테고리별 / 정상이월 구분 o
  1086. -- 카테고리별 브랜드 필터 생성
  1087. INSERT INTO TB_CATE_FILTER_TMP (
  1088. SITE_CD
  1089. , CATE_GB
  1090. , FORMAL_GB
  1091. , BRAND_GROUP_NO
  1092. , CATE_NO
  1093. , FILTER_GB
  1094. , FILTER_CD
  1095. , FILTER_NM
  1096. , DISP_ORD
  1097. )
  1098. WITH TAB_FILTER AS (
  1099. SELECT C4.SITE_CD
  1100. , C4.CATE_GB
  1101. , G.FORMAL_GB
  1102. , CG.BRAND_GROUP_NO
  1103. , C4.CATE1_NO
  1104. , C4.CATE2_NO
  1105. , C4.CATE3_NO
  1106. , C4.CATE4_NO
  1107. , C4.CATE5_NO
  1108. , B.BRAND_GROUP_NO AS FILTER_CD
  1109. , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
  1110. BG.BRAND_GROUP_ENM
  1111. ELSE
  1112. BG.BRAND_GROUP_KNM
  1113. END AS FILTER_NM
  1114. FROM TB_CATE_4SRCH C4
  1115. , TB_CATE_GOODS CG
  1116. , TB_GOODS G
  1117. , TB_GOODS_STOCK GS
  1118. , TB_BRAND B
  1119. , TB_SITE_BRAND SB
  1120. , TB_BRAND_GROUP BG
  1121. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  1122. AND CG.BRAND_GROUP_NO = 0
  1123. AND CG.GOODS_CD = G.GOODS_CD
  1124. AND G.GOODS_CD = GS.GOODS_CD
  1125. AND G.BRAND_CD = B.BRAND_CD
  1126. AND B.BRAND_CD = SB.BRAND_CD
  1127. AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
  1128. AND C4.SITE_CD = 'G000_10'
  1129. AND C4.CATE_GB = 'G032_101'
  1130. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  1131. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  1132. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  1133. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  1134. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  1135. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  1136. AND SB.SITE_CD = 'G000_10'
  1137. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  1138. AND BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
  1139. )
  1140. SELECT SITE_CD
  1141. , CATE_GB
  1142. , FORMAL_GB
  1143. , BRAND_GROUP_NO
  1144. , CATE_NO
  1145. , 'BRAND' AS FILTER_GB
  1146. , FILTER_CD
  1147. , FILTER_NM
  1148. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  1149. ORDER BY FILTER_NM
  1150. ) AS DISP_ORD
  1151. FROM (
  1152. SELECT DISTINCT
  1153. SITE_CD
  1154. , CATE_GB
  1155. , FORMAL_GB
  1156. , BRAND_GROUP_NO
  1157. , CATE_NO
  1158. , FILTER_CD
  1159. , FILTER_NM
  1160. FROM (
  1161. SELECT SITE_CD
  1162. , CATE_GB
  1163. , 'G009_10' AS FORMAL_GB
  1164. , BRAND_GROUP_NO
  1165. , CATE5_NO AS CATE_NO
  1166. , FILTER_CD
  1167. , FILTER_NM
  1168. FROM TAB_FILTER
  1169. WHERE CATE5_NO IS NOT NULL
  1170. AND FORMAL_GB IN ('G009_10','G009_20')
  1171. UNION ALL
  1172. SELECT SITE_CD
  1173. , CATE_GB
  1174. , 'G009_10' AS FORMAL_GB
  1175. , BRAND_GROUP_NO
  1176. , CATE4_NO AS CATE_NO
  1177. , FILTER_CD
  1178. , FILTER_NM
  1179. FROM TAB_FILTER
  1180. WHERE CATE4_NO IS NOT NULL
  1181. AND FORMAL_GB IN ('G009_10','G009_20')
  1182. UNION ALL
  1183. SELECT SITE_CD
  1184. , CATE_GB
  1185. , 'G009_10' AS FORMAL_GB
  1186. , BRAND_GROUP_NO
  1187. , CATE3_NO AS CATE_NO
  1188. , FILTER_CD
  1189. , FILTER_NM
  1190. FROM TAB_FILTER
  1191. WHERE CATE3_NO IS NOT NULL
  1192. AND FORMAL_GB IN ('G009_10','G009_20')
  1193. UNION ALL
  1194. SELECT SITE_CD
  1195. , CATE_GB
  1196. , 'G009_10' AS FORMAL_GB
  1197. , BRAND_GROUP_NO
  1198. , CATE2_NO AS CATE_NO
  1199. , FILTER_CD
  1200. , FILTER_NM
  1201. FROM TAB_FILTER
  1202. WHERE CATE2_NO IS NOT NULL
  1203. AND FORMAL_GB IN ('G009_10','G009_20')
  1204. UNION ALL
  1205. SELECT SITE_CD
  1206. , CATE_GB
  1207. , 'G009_10' AS FORMAL_GB
  1208. , BRAND_GROUP_NO
  1209. , CATE1_NO AS CATE_NO
  1210. , FILTER_CD
  1211. , FILTER_NM
  1212. FROM TAB_FILTER
  1213. WHERE CATE1_NO IS NOT NULL
  1214. AND FORMAL_GB IN ('G009_10','G009_20')
  1215. UNION ALL
  1216. SELECT SITE_CD
  1217. , CATE_GB
  1218. , FORMAL_GB
  1219. , BRAND_GROUP_NO
  1220. , CATE5_NO AS CATE_NO
  1221. , FILTER_CD
  1222. , FILTER_NM
  1223. FROM TAB_FILTER
  1224. WHERE CATE5_NO IS NOT NULL
  1225. AND FORMAL_GB = 'G009_20'
  1226. UNION ALL
  1227. SELECT SITE_CD
  1228. , CATE_GB
  1229. , FORMAL_GB
  1230. , BRAND_GROUP_NO
  1231. , CATE4_NO AS CATE_NO
  1232. , FILTER_CD
  1233. , FILTER_NM
  1234. FROM TAB_FILTER
  1235. WHERE CATE4_NO IS NOT NULL
  1236. AND FORMAL_GB = 'G009_20'
  1237. UNION ALL
  1238. SELECT SITE_CD
  1239. , CATE_GB
  1240. , FORMAL_GB
  1241. , BRAND_GROUP_NO
  1242. , CATE3_NO AS CATE_NO
  1243. , FILTER_CD
  1244. , FILTER_NM
  1245. FROM TAB_FILTER
  1246. WHERE CATE3_NO IS NOT NULL
  1247. AND FORMAL_GB = 'G009_20'
  1248. UNION ALL
  1249. SELECT SITE_CD
  1250. , CATE_GB
  1251. , FORMAL_GB
  1252. , BRAND_GROUP_NO
  1253. , CATE2_NO AS CATE_NO
  1254. , FILTER_CD
  1255. , FILTER_NM
  1256. FROM TAB_FILTER
  1257. WHERE CATE2_NO IS NOT NULL
  1258. AND FORMAL_GB = 'G009_20'
  1259. UNION ALL
  1260. SELECT SITE_CD
  1261. , CATE_GB
  1262. , FORMAL_GB
  1263. , BRAND_GROUP_NO
  1264. , CATE1_NO AS CATE_NO
  1265. , FILTER_CD
  1266. , FILTER_NM
  1267. FROM TAB_FILTER
  1268. WHERE CATE1_NO IS NOT NULL
  1269. AND FORMAL_GB = 'G009_20'
  1270. ) Z
  1271. WHERE CATE_NO IS NOT NULL
  1272. ) Z
  1273. ;
  1274. -- 사이즈 필터 생성
  1275. INSERT INTO TB_CATE_FILTER_TMP (
  1276. SITE_CD
  1277. , CATE_GB
  1278. , FORMAL_GB
  1279. , BRAND_GROUP_NO
  1280. , CATE_NO
  1281. , FILTER_GB
  1282. , FILTER_CD
  1283. , FILTER_NM
  1284. , DISP_ORD
  1285. )
  1286. WITH TAB_FILTER AS (
  1287. SELECT C4.SITE_CD
  1288. , C4.CATE_GB
  1289. , G.FORMAL_GB
  1290. , CG.BRAND_GROUP_NO
  1291. , C4.CATE1_NO
  1292. , C4.CATE2_NO
  1293. , C4.CATE3_NO
  1294. , C4.CATE4_NO
  1295. , C4.CATE5_NO
  1296. , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
  1297. , S.OPT_CD2 AS FILTER_NM
  1298. FROM TB_CATE_4SRCH C4
  1299. , TB_CATE_GOODS CG
  1300. , TB_GOODS G
  1301. , TB_ITEMKIND I
  1302. , VW_STOCK S
  1303. , TB_BRAND B
  1304. , TB_SITE_BRAND SB
  1305. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  1306. AND CG.BRAND_GROUP_NO = 0
  1307. AND CG.GOODS_CD = G.GOODS_CD
  1308. AND G.ITEMKIND_CD = I.ITEMKIND_CD
  1309. AND G.GOODS_CD = S.GOODS_CD
  1310. AND G.BRAND_CD = B.BRAND_CD
  1311. AND B.BRAND_CD = SB.BRAND_CD
  1312. AND C4.SITE_CD = 'G000_10'
  1313. AND C4.CATE_GB = 'G032_101'
  1314. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  1315. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  1316. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  1317. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  1318. AND I.SIZE_GB IS NOT NULL
  1319. AND S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는옵션*/
  1320. AND S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  1321. AND S.DISP_YN = 'Y' /*노출하는 옵션*/
  1322. AND LENGTH(S.OPT_CD2) > 0
  1323. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  1324. AND SB.SITE_CD = 'G000_10'
  1325. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  1326. )
  1327. SELECT SITE_CD
  1328. , CATE_GB
  1329. , FORMAL_GB
  1330. , BRAND_GROUP_NO
  1331. , CATE_NO
  1332. , 'SIZE' AS FILTER_GB
  1333. , FILTER_CD
  1334. , FILTER_NM
  1335. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  1336. ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
  1337. WHEN FILTER_CD LIKE 'B%' THEN 2
  1338. WHEN FILTER_CD LIKE 'S%' THEN 3
  1339. ELSE 4
  1340. END, FILTER_NM
  1341. ) AS DISP_ORD
  1342. FROM (
  1343. SELECT DISTINCT
  1344. SITE_CD
  1345. , CATE_GB
  1346. , FORMAL_GB
  1347. , BRAND_GROUP_NO
  1348. , CATE_NO
  1349. , FILTER_CD
  1350. , FILTER_NM
  1351. FROM (
  1352. SELECT SITE_CD
  1353. , CATE_GB
  1354. , 'G009_10' AS FORMAL_GB
  1355. , BRAND_GROUP_NO
  1356. , CATE5_NO AS CATE_NO
  1357. , FILTER_CD
  1358. , FILTER_NM
  1359. FROM TAB_FILTER
  1360. WHERE CATE5_NO IS NOT NULL
  1361. AND FORMAL_GB IN ('G009_10','G009_20')
  1362. UNION ALL
  1363. SELECT SITE_CD
  1364. , CATE_GB
  1365. , 'G009_10' AS FORMAL_GB
  1366. , BRAND_GROUP_NO
  1367. , CATE4_NO AS CATE_NO
  1368. , FILTER_CD
  1369. , FILTER_NM
  1370. FROM TAB_FILTER
  1371. WHERE CATE4_NO IS NOT NULL
  1372. AND FORMAL_GB IN ('G009_10','G009_20')
  1373. UNION ALL
  1374. SELECT SITE_CD
  1375. , CATE_GB
  1376. , 'G009_10' AS FORMAL_GB
  1377. , BRAND_GROUP_NO
  1378. , CATE3_NO AS CATE_NO
  1379. , FILTER_CD
  1380. , FILTER_NM
  1381. FROM TAB_FILTER
  1382. WHERE CATE3_NO IS NOT NULL
  1383. AND FORMAL_GB IN ('G009_10','G009_20')
  1384. UNION ALL
  1385. SELECT SITE_CD
  1386. , CATE_GB
  1387. , 'G009_10' AS FORMAL_GB
  1388. , BRAND_GROUP_NO
  1389. , CATE2_NO AS CATE_NO
  1390. , FILTER_CD
  1391. , FILTER_NM
  1392. FROM TAB_FILTER
  1393. WHERE CATE2_NO IS NOT NULL
  1394. AND FORMAL_GB IN ('G009_10','G009_20')
  1395. UNION ALL
  1396. SELECT SITE_CD
  1397. , CATE_GB
  1398. , 'G009_10' AS FORMAL_GB
  1399. , BRAND_GROUP_NO
  1400. , CATE1_NO AS CATE_NO
  1401. , FILTER_CD
  1402. , FILTER_NM
  1403. FROM TAB_FILTER
  1404. WHERE CATE1_NO IS NOT NULL
  1405. AND FORMAL_GB IN ('G009_10','G009_20')
  1406. UNION ALL
  1407. SELECT SITE_CD
  1408. , CATE_GB
  1409. , FORMAL_GB
  1410. , BRAND_GROUP_NO
  1411. , CATE5_NO AS CATE_NO
  1412. , FILTER_CD
  1413. , FILTER_NM
  1414. FROM TAB_FILTER
  1415. WHERE CATE5_NO IS NOT NULL
  1416. AND FORMAL_GB = 'G009_20'
  1417. UNION ALL
  1418. SELECT SITE_CD
  1419. , CATE_GB
  1420. , FORMAL_GB
  1421. , BRAND_GROUP_NO
  1422. , CATE4_NO AS CATE_NO
  1423. , FILTER_CD
  1424. , FILTER_NM
  1425. FROM TAB_FILTER
  1426. WHERE CATE4_NO IS NOT NULL
  1427. AND FORMAL_GB = 'G009_20'
  1428. UNION ALL
  1429. SELECT SITE_CD
  1430. , CATE_GB
  1431. , FORMAL_GB
  1432. , BRAND_GROUP_NO
  1433. , CATE3_NO AS CATE_NO
  1434. , FILTER_CD
  1435. , FILTER_NM
  1436. FROM TAB_FILTER
  1437. WHERE CATE3_NO IS NOT NULL
  1438. AND FORMAL_GB = 'G009_20'
  1439. UNION ALL
  1440. SELECT SITE_CD
  1441. , CATE_GB
  1442. , FORMAL_GB
  1443. , BRAND_GROUP_NO
  1444. , CATE2_NO AS CATE_NO
  1445. , FILTER_CD
  1446. , FILTER_NM
  1447. FROM TAB_FILTER
  1448. WHERE CATE2_NO IS NOT NULL
  1449. AND FORMAL_GB = 'G009_20'
  1450. UNION ALL
  1451. SELECT SITE_CD
  1452. , CATE_GB
  1453. , FORMAL_GB
  1454. , BRAND_GROUP_NO
  1455. , CATE1_NO AS CATE_NO
  1456. , FILTER_CD
  1457. , FILTER_NM
  1458. FROM TAB_FILTER
  1459. WHERE CATE1_NO IS NOT NULL
  1460. AND FORMAL_GB = 'G009_20'
  1461. ) Z
  1462. WHERE CATE_NO IS NOT NULL
  1463. ) Z
  1464. ;
  1465. -- 가격 필터 생성
  1466. INSERT INTO TB_CATE_FILTER_TMP (
  1467. SITE_CD
  1468. , CATE_GB
  1469. , FORMAL_GB
  1470. , BRAND_GROUP_NO
  1471. , CATE_NO
  1472. , FILTER_GB
  1473. , FILTER_CD
  1474. , FILTER_NM
  1475. , DISP_ORD
  1476. )
  1477. WITH TAB_FILTER AS (
  1478. SELECT C4.SITE_CD
  1479. , C4.CATE_GB
  1480. , G.FORMAL_GB
  1481. , CG.BRAND_GROUP_NO
  1482. , C4.CATE1_NO
  1483. , C4.CATE2_NO
  1484. , C4.CATE3_NO
  1485. , C4.CATE4_NO
  1486. , C4.CATE5_NO
  1487. , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
  1488. FROM TB_CATE_4SRCH C4
  1489. , TB_CATE_GOODS CG
  1490. , TB_GOODS G
  1491. , TB_GOODS_STOCK GS
  1492. , TB_BRAND B
  1493. , TB_SITE_BRAND SB
  1494. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  1495. AND CG.BRAND_GROUP_NO = 0
  1496. AND CG.GOODS_CD = G.GOODS_CD
  1497. AND CG.GOODS_CD = GS.GOODS_CD
  1498. AND G.BRAND_CD = B.BRAND_CD
  1499. AND B.BRAND_CD = SB.BRAND_CD
  1500. AND C4.SITE_CD = 'G000_10'
  1501. AND C4.CATE_GB = 'G032_101'
  1502. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  1503. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  1504. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  1505. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  1506. AND GS.STOCK_QTY > 0 /*재고있는옵션*/
  1507. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  1508. AND SB.SITE_CD = 'G000_10'
  1509. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  1510. )
  1511. , TAB_PRICE AS (
  1512. SELECT SITE_CD
  1513. , CATE_GB
  1514. , 'G009_10' AS FORMAL_GB
  1515. , BRAND_GROUP_NO
  1516. , CATE_NO
  1517. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1518. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1519. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1520. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1521. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1522. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1523. FROM (
  1524. SELECT SITE_CD
  1525. , CATE_GB
  1526. , BRAND_GROUP_NO
  1527. , CATE1_NO AS CATE_NO
  1528. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1529. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1530. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1531. FROM TAB_FILTER
  1532. WHERE CATE1_NO IS NOT NULL
  1533. AND FORMAL_GB IN ('G009_10','G009_20')
  1534. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
  1535. ) Z
  1536. UNION ALL
  1537. SELECT SITE_CD
  1538. , CATE_GB
  1539. , 'G009_10' AS FORMAL_GB
  1540. , BRAND_GROUP_NO
  1541. , CATE_NO
  1542. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1543. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1544. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1545. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1546. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1547. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1548. FROM (
  1549. SELECT SITE_CD
  1550. , CATE_GB
  1551. , BRAND_GROUP_NO
  1552. , CATE2_NO AS CATE_NO
  1553. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1554. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1555. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1556. FROM TAB_FILTER
  1557. WHERE CATE2_NO IS NOT NULL
  1558. AND FORMAL_GB IN ('G009_10','G009_20')
  1559. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
  1560. ) Z
  1561. UNION ALL
  1562. SELECT SITE_CD
  1563. , CATE_GB
  1564. , 'G009_10' AS FORMAL_GB
  1565. , BRAND_GROUP_NO
  1566. , CATE_NO
  1567. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1568. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1569. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1570. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1571. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1572. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1573. FROM (
  1574. SELECT SITE_CD
  1575. , CATE_GB
  1576. , BRAND_GROUP_NO
  1577. , CATE3_NO AS CATE_NO
  1578. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1579. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1580. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1581. FROM TAB_FILTER
  1582. WHERE CATE3_NO IS NOT NULL
  1583. AND FORMAL_GB IN ('G009_10','G009_20')
  1584. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
  1585. ) Z
  1586. UNION ALL
  1587. SELECT SITE_CD
  1588. , CATE_GB
  1589. , 'G009_10' AS FORMAL_GB
  1590. , BRAND_GROUP_NO
  1591. , CATE_NO
  1592. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1593. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1594. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1595. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1596. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1597. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1598. FROM (
  1599. SELECT SITE_CD
  1600. , CATE_GB
  1601. , BRAND_GROUP_NO
  1602. , CATE4_NO AS CATE_NO
  1603. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1604. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1605. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1606. FROM TAB_FILTER
  1607. WHERE CATE4_NO IS NOT NULL
  1608. AND FORMAL_GB IN ('G009_10','G009_20')
  1609. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
  1610. ) Z
  1611. UNION ALL
  1612. SELECT SITE_CD
  1613. , CATE_GB
  1614. , 'G009_10' AS FORMAL_GB
  1615. , BRAND_GROUP_NO
  1616. , CATE_NO
  1617. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1618. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1619. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1620. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1621. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1622. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1623. FROM (
  1624. SELECT SITE_CD
  1625. , CATE_GB
  1626. , BRAND_GROUP_NO
  1627. , CATE5_NO AS CATE_NO
  1628. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1629. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1630. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1631. FROM TAB_FILTER
  1632. WHERE CATE5_NO IS NOT NULL
  1633. AND FORMAL_GB IN ('G009_10','G009_20')
  1634. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
  1635. ) Z
  1636. UNION ALL
  1637. SELECT SITE_CD
  1638. , CATE_GB
  1639. , 'G009_20' AS FORMAL_GB
  1640. , BRAND_GROUP_NO
  1641. , CATE_NO
  1642. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1643. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1644. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1645. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1646. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1647. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1648. FROM (
  1649. SELECT SITE_CD
  1650. , CATE_GB
  1651. , BRAND_GROUP_NO
  1652. , CATE1_NO AS CATE_NO
  1653. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1654. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1655. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1656. FROM TAB_FILTER
  1657. WHERE CATE1_NO IS NOT NULL
  1658. AND FORMAL_GB = 'G009_20'
  1659. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
  1660. ) Z
  1661. UNION ALL
  1662. SELECT SITE_CD
  1663. , CATE_GB
  1664. , 'G009_20' AS FORMAL_GB
  1665. , BRAND_GROUP_NO
  1666. , CATE_NO
  1667. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1668. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1669. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1670. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1671. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1672. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1673. FROM (
  1674. SELECT SITE_CD
  1675. , CATE_GB
  1676. , BRAND_GROUP_NO
  1677. , CATE2_NO AS CATE_NO
  1678. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1679. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1680. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1681. FROM TAB_FILTER
  1682. WHERE CATE2_NO IS NOT NULL
  1683. AND FORMAL_GB = 'G009_20'
  1684. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
  1685. ) Z
  1686. UNION ALL
  1687. SELECT SITE_CD
  1688. , CATE_GB
  1689. , 'G009_20' AS FORMAL_GB
  1690. , BRAND_GROUP_NO
  1691. , CATE_NO
  1692. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1693. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1694. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1695. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1696. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1697. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1698. FROM (
  1699. SELECT SITE_CD
  1700. , CATE_GB
  1701. , BRAND_GROUP_NO
  1702. , CATE3_NO AS CATE_NO
  1703. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1704. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1705. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1706. FROM TAB_FILTER
  1707. WHERE CATE3_NO IS NOT NULL
  1708. AND FORMAL_GB = 'G009_20'
  1709. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
  1710. ) Z
  1711. UNION ALL
  1712. SELECT SITE_CD
  1713. , CATE_GB
  1714. , 'G009_20' AS FORMAL_GB
  1715. , BRAND_GROUP_NO
  1716. , CATE_NO
  1717. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1718. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1719. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1720. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1721. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1722. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1723. FROM (
  1724. SELECT SITE_CD
  1725. , CATE_GB
  1726. , BRAND_GROUP_NO
  1727. , CATE4_NO AS CATE_NO
  1728. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1729. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1730. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1731. FROM TAB_FILTER
  1732. WHERE CATE4_NO IS NOT NULL
  1733. AND FORMAL_GB = 'G009_20'
  1734. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
  1735. ) Z
  1736. UNION ALL
  1737. SELECT SITE_CD
  1738. , CATE_GB
  1739. , 'G009_20' AS FORMAL_GB
  1740. , BRAND_GROUP_NO
  1741. , CATE_NO
  1742. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  1743. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  1744. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  1745. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  1746. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  1747. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  1748. FROM (
  1749. SELECT SITE_CD
  1750. , CATE_GB
  1751. , BRAND_GROUP_NO
  1752. , CATE5_NO AS CATE_NO
  1753. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  1754. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  1755. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  1756. FROM TAB_FILTER
  1757. WHERE CATE5_NO IS NOT NULL
  1758. AND FORMAL_GB = 'G009_20'
  1759. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
  1760. ) Z
  1761. )
  1762. SELECT DISTINCT
  1763. SITE_CD
  1764. , CATE_GB
  1765. , FORMAL_GB
  1766. , BRAND_GROUP_NO
  1767. , CATE_NO
  1768. , 'PRICE' AS FILTER_GB
  1769. , FILTER_CD
  1770. , FILTER_NM
  1771. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  1772. ORDER BY FILTER_CD
  1773. ) AS DISP_ORD
  1774. FROM (
  1775. SELECT SITE_CD
  1776. , CATE_GB
  1777. , FORMAL_GB
  1778. , BRAND_GROUP_NO
  1779. , CATE_NO
  1780. , PRICE1 AS FILTER_CD
  1781. , PRICE1 AS FILTER_NM
  1782. FROM TAB_PRICE
  1783. UNION ALL
  1784. SELECT SITE_CD
  1785. , CATE_GB
  1786. , FORMAL_GB
  1787. , BRAND_GROUP_NO
  1788. , CATE_NO
  1789. , PRICE2 AS FILTER_CD
  1790. , PRICE2 AS FILTER_NM
  1791. FROM TAB_PRICE
  1792. UNION ALL
  1793. SELECT SITE_CD
  1794. , CATE_GB
  1795. , FORMAL_GB
  1796. , BRAND_GROUP_NO
  1797. , CATE_NO
  1798. , PRICE3 AS FILTER_CD
  1799. , PRICE3 AS FILTER_NM
  1800. FROM TAB_PRICE
  1801. UNION ALL
  1802. SELECT SITE_CD
  1803. , CATE_GB
  1804. , FORMAL_GB
  1805. , BRAND_GROUP_NO
  1806. , CATE_NO
  1807. , PRICE4 AS FILTER_CD
  1808. , PRICE4 AS FILTER_NM
  1809. FROM TAB_PRICE
  1810. UNION ALL
  1811. SELECT SITE_CD
  1812. , CATE_GB
  1813. , FORMAL_GB
  1814. , BRAND_GROUP_NO
  1815. , CATE_NO
  1816. , PRICE5 AS FILTER_CD
  1817. , PRICE5 AS FILTER_NM
  1818. FROM TAB_PRICE
  1819. UNION ALL
  1820. SELECT SITE_CD
  1821. , CATE_GB
  1822. , FORMAL_GB
  1823. , BRAND_GROUP_NO
  1824. , CATE_NO
  1825. , PRICE6 AS FILTER_CD
  1826. , PRICE6 AS FILTER_NM
  1827. FROM TAB_PRICE
  1828. ) Z
  1829. ;
  1830. -- 연령대 필터 생성
  1831. INSERT INTO TB_CATE_FILTER_TMP (
  1832. SITE_CD
  1833. , CATE_GB
  1834. , FORMAL_GB
  1835. , BRAND_GROUP_NO
  1836. , CATE_NO
  1837. , FILTER_GB
  1838. , FILTER_CD
  1839. , FILTER_NM
  1840. , DISP_ORD
  1841. )
  1842. WITH TAB_FILTER AS (
  1843. SELECT C4.SITE_CD
  1844. , C4.CATE_GB
  1845. , G.FORMAL_GB
  1846. , CG.BRAND_GROUP_NO
  1847. , C4.CATE1_NO
  1848. , C4.CATE2_NO
  1849. , C4.CATE3_NO
  1850. , C4.CATE4_NO
  1851. , C4.CATE5_NO
  1852. , G.AGE_GRP_CD AS FILTER_CD
  1853. FROM TB_CATE_4SRCH C4
  1854. , TB_CATE_GOODS CG
  1855. , TB_GOODS G
  1856. , TB_GOODS_STOCK GS
  1857. , TB_BRAND B
  1858. , TB_SITE_BRAND SB
  1859. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  1860. AND CG.BRAND_GROUP_NO = 0
  1861. AND CG.GOODS_CD = G.GOODS_CD
  1862. AND CG.GOODS_CD = GS.GOODS_CD
  1863. AND G.BRAND_CD = B.BRAND_CD
  1864. AND B.BRAND_CD = SB.BRAND_CD
  1865. AND C4.SITE_CD = 'G000_10'
  1866. AND C4.CATE_GB = 'G032_101'
  1867. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  1868. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  1869. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  1870. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  1871. AND G.AGE_GRP_CD IS NOT NULL
  1872. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  1873. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  1874. AND SB.SITE_CD = 'G000_10'
  1875. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  1876. )
  1877. SELECT A.SITE_CD
  1878. , A.CATE_GB
  1879. , A.FORMAL_GB
  1880. , A.BRAND_GROUP_NO
  1881. , A.CATE_NO
  1882. , 'AGE' AS FILTER_GB
  1883. , A.FILTER_CD
  1884. , CC.CD_NM AS FILTER_NM
  1885. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  1886. ORDER BY CC.DISP_ORD
  1887. ) AS DISP_ORD
  1888. FROM (
  1889. SELECT DISTINCT
  1890. SITE_CD
  1891. , CATE_GB
  1892. , FORMAL_GB
  1893. , BRAND_GROUP_NO
  1894. , CATE_NO
  1895. , FILTER_CD
  1896. FROM (
  1897. SELECT SITE_CD
  1898. , CATE_GB
  1899. , 'G009_10' AS FORMAL_GB
  1900. , BRAND_GROUP_NO
  1901. , CATE5_NO AS CATE_NO
  1902. , FILTER_CD
  1903. FROM TAB_FILTER
  1904. WHERE CATE5_NO IS NOT NULL
  1905. AND FORMAL_GB IN ('G009_10','G009_20')
  1906. UNION ALL
  1907. SELECT SITE_CD
  1908. , CATE_GB
  1909. , 'G009_10' AS FORMAL_GB
  1910. , BRAND_GROUP_NO
  1911. , CATE4_NO AS CATE_NO
  1912. , FILTER_CD
  1913. FROM TAB_FILTER
  1914. WHERE CATE4_NO IS NOT NULL
  1915. AND FORMAL_GB IN ('G009_10','G009_20')
  1916. UNION ALL
  1917. SELECT SITE_CD
  1918. , CATE_GB
  1919. , 'G009_10' AS FORMAL_GB
  1920. , BRAND_GROUP_NO
  1921. , CATE3_NO AS CATE_NO
  1922. , FILTER_CD
  1923. FROM TAB_FILTER
  1924. WHERE CATE3_NO IS NOT NULL
  1925. AND FORMAL_GB IN ('G009_10','G009_20')
  1926. UNION ALL
  1927. SELECT SITE_CD
  1928. , CATE_GB
  1929. , 'G009_10' AS FORMAL_GB
  1930. , BRAND_GROUP_NO
  1931. , CATE2_NO AS CATE_NO
  1932. , FILTER_CD
  1933. FROM TAB_FILTER
  1934. WHERE CATE2_NO IS NOT NULL
  1935. AND FORMAL_GB IN ('G009_10','G009_20')
  1936. UNION ALL
  1937. SELECT SITE_CD
  1938. , CATE_GB
  1939. , 'G009_10' AS FORMAL_GB
  1940. , BRAND_GROUP_NO
  1941. , CATE1_NO AS CATE_NO
  1942. , FILTER_CD
  1943. FROM TAB_FILTER
  1944. WHERE CATE1_NO IS NOT NULL
  1945. AND FORMAL_GB IN ('G009_10','G009_20')
  1946. UNION ALL
  1947. SELECT SITE_CD
  1948. , CATE_GB
  1949. , FORMAL_GB
  1950. , BRAND_GROUP_NO
  1951. , CATE5_NO AS CATE_NO
  1952. , FILTER_CD
  1953. FROM TAB_FILTER
  1954. WHERE CATE5_NO IS NOT NULL
  1955. AND FORMAL_GB = 'G009_20'
  1956. UNION ALL
  1957. SELECT SITE_CD
  1958. , CATE_GB
  1959. , FORMAL_GB
  1960. , BRAND_GROUP_NO
  1961. , CATE4_NO AS CATE_NO
  1962. , FILTER_CD
  1963. FROM TAB_FILTER
  1964. WHERE CATE4_NO IS NOT NULL
  1965. AND FORMAL_GB = 'G009_20'
  1966. UNION ALL
  1967. SELECT SITE_CD
  1968. , CATE_GB
  1969. , FORMAL_GB
  1970. , BRAND_GROUP_NO
  1971. , CATE3_NO AS CATE_NO
  1972. , FILTER_CD
  1973. FROM TAB_FILTER
  1974. WHERE CATE3_NO IS NOT NULL
  1975. AND FORMAL_GB = 'G009_20'
  1976. UNION ALL
  1977. SELECT SITE_CD
  1978. , CATE_GB
  1979. , FORMAL_GB
  1980. , BRAND_GROUP_NO
  1981. , CATE2_NO AS CATE_NO
  1982. , FILTER_CD
  1983. FROM TAB_FILTER
  1984. WHERE CATE2_NO IS NOT NULL
  1985. AND FORMAL_GB = 'G009_20'
  1986. UNION ALL
  1987. SELECT SITE_CD
  1988. , CATE_GB
  1989. , FORMAL_GB
  1990. , BRAND_GROUP_NO
  1991. , CATE1_NO AS CATE_NO
  1992. , FILTER_CD
  1993. FROM TAB_FILTER
  1994. WHERE CATE1_NO IS NOT NULL
  1995. AND FORMAL_GB = 'G009_20'
  1996. ) Z
  1997. WHERE CATE_NO IS NOT NULL
  1998. ) A
  1999. , TB_COMMON_CODE CC
  2000. WHERE A.FILTER_CD = CC.CD
  2001. AND CC.CD_GB = 'G023'
  2002. AND CC.USE_YN = 'Y'
  2003. ;
  2004. -- 시즌 필터 생성
  2005. INSERT INTO TB_CATE_FILTER_TMP (
  2006. SITE_CD
  2007. , CATE_GB
  2008. , FORMAL_GB
  2009. , BRAND_GROUP_NO
  2010. , CATE_NO
  2011. , FILTER_GB
  2012. , FILTER_CD
  2013. , FILTER_NM
  2014. , DISP_ORD
  2015. )
  2016. WITH TAB_FILTER AS (
  2017. SELECT C4.SITE_CD
  2018. , C4.CATE_GB
  2019. , G.FORMAL_GB
  2020. , CG.BRAND_GROUP_NO
  2021. , C4.CATE1_NO
  2022. , C4.CATE2_NO
  2023. , C4.CATE3_NO
  2024. , C4.CATE4_NO
  2025. , C4.CATE5_NO
  2026. , G.SEASON_CD AS FILTER_CD
  2027. FROM TB_CATE_4SRCH C4
  2028. , TB_CATE_GOODS CG
  2029. , TB_GOODS G
  2030. , TB_GOODS_STOCK GS
  2031. , TB_BRAND B
  2032. , TB_SITE_BRAND SB
  2033. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  2034. AND CG.BRAND_GROUP_NO = 0
  2035. AND CG.GOODS_CD = G.GOODS_CD
  2036. AND CG.GOODS_CD = GS.GOODS_CD
  2037. AND G.BRAND_CD = B.BRAND_CD
  2038. AND B.BRAND_CD = SB.BRAND_CD
  2039. AND C4.SITE_CD = 'G000_10'
  2040. AND C4.CATE_GB = 'G032_101'
  2041. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  2042. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  2043. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  2044. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  2045. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  2046. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  2047. AND SB.SITE_CD = 'G000_10'
  2048. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  2049. )
  2050. SELECT A.SITE_CD
  2051. , A.CATE_GB
  2052. , A.FORMAL_GB
  2053. , A.BRAND_GROUP_NO
  2054. , A.CATE_NO
  2055. , 'SEASON' AS FILTER_GB
  2056. , A.FILTER_CD
  2057. , CC.CD_NM AS FILTER_NM
  2058. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  2059. ORDER BY CC.DISP_ORD
  2060. ) AS DISP_ORD
  2061. FROM (
  2062. SELECT DISTINCT
  2063. SITE_CD
  2064. , CATE_GB
  2065. , FORMAL_GB
  2066. , BRAND_GROUP_NO
  2067. , CATE_NO
  2068. , FILTER_CD
  2069. FROM (
  2070. SELECT SITE_CD
  2071. , CATE_GB
  2072. , 'G009_10' AS FORMAL_GB
  2073. , BRAND_GROUP_NO
  2074. , CATE5_NO AS CATE_NO
  2075. , FILTER_CD
  2076. FROM TAB_FILTER
  2077. WHERE CATE5_NO IS NOT NULL
  2078. AND FORMAL_GB IN ('G009_10','G009_20')
  2079. UNION ALL
  2080. SELECT SITE_CD
  2081. , CATE_GB
  2082. , 'G009_10' AS FORMAL_GB
  2083. , BRAND_GROUP_NO
  2084. , CATE4_NO AS CATE_NO
  2085. , FILTER_CD
  2086. FROM TAB_FILTER
  2087. WHERE CATE4_NO IS NOT NULL
  2088. AND FORMAL_GB IN ('G009_10','G009_20')
  2089. UNION ALL
  2090. SELECT SITE_CD
  2091. , CATE_GB
  2092. , 'G009_10' AS FORMAL_GB
  2093. , BRAND_GROUP_NO
  2094. , CATE3_NO AS CATE_NO
  2095. , FILTER_CD
  2096. FROM TAB_FILTER
  2097. WHERE CATE3_NO IS NOT NULL
  2098. AND FORMAL_GB IN ('G009_10','G009_20')
  2099. UNION ALL
  2100. SELECT SITE_CD
  2101. , CATE_GB
  2102. , 'G009_10' AS FORMAL_GB
  2103. , BRAND_GROUP_NO
  2104. , CATE2_NO AS CATE_NO
  2105. , FILTER_CD
  2106. FROM TAB_FILTER
  2107. WHERE CATE2_NO IS NOT NULL
  2108. AND FORMAL_GB IN ('G009_10','G009_20')
  2109. UNION ALL
  2110. SELECT SITE_CD
  2111. , CATE_GB
  2112. , 'G009_10' AS FORMAL_GB
  2113. , BRAND_GROUP_NO
  2114. , CATE1_NO AS CATE_NO
  2115. , FILTER_CD
  2116. FROM TAB_FILTER
  2117. WHERE CATE1_NO IS NOT NULL
  2118. AND FORMAL_GB IN ('G009_10','G009_20')
  2119. UNION ALL
  2120. SELECT SITE_CD
  2121. , CATE_GB
  2122. , FORMAL_GB
  2123. , BRAND_GROUP_NO
  2124. , CATE5_NO AS CATE_NO
  2125. , FILTER_CD
  2126. FROM TAB_FILTER
  2127. WHERE CATE5_NO IS NOT NULL
  2128. AND FORMAL_GB = 'G009_20'
  2129. UNION ALL
  2130. SELECT SITE_CD
  2131. , CATE_GB
  2132. , FORMAL_GB
  2133. , BRAND_GROUP_NO
  2134. , CATE4_NO AS CATE_NO
  2135. , FILTER_CD
  2136. FROM TAB_FILTER
  2137. WHERE CATE4_NO IS NOT NULL
  2138. AND FORMAL_GB = 'G009_20'
  2139. UNION ALL
  2140. SELECT SITE_CD
  2141. , CATE_GB
  2142. , FORMAL_GB
  2143. , BRAND_GROUP_NO
  2144. , CATE3_NO AS CATE_NO
  2145. , FILTER_CD
  2146. FROM TAB_FILTER
  2147. WHERE CATE3_NO IS NOT NULL
  2148. AND FORMAL_GB = 'G009_20'
  2149. UNION ALL
  2150. SELECT SITE_CD
  2151. , CATE_GB
  2152. , FORMAL_GB
  2153. , BRAND_GROUP_NO
  2154. , CATE2_NO AS CATE_NO
  2155. , FILTER_CD
  2156. FROM TAB_FILTER
  2157. WHERE CATE2_NO IS NOT NULL
  2158. AND FORMAL_GB = 'G009_20'
  2159. UNION ALL
  2160. SELECT SITE_CD
  2161. , CATE_GB
  2162. , FORMAL_GB
  2163. , BRAND_GROUP_NO
  2164. , CATE1_NO AS CATE_NO
  2165. , FILTER_CD
  2166. FROM TAB_FILTER
  2167. WHERE CATE1_NO IS NOT NULL
  2168. AND FORMAL_GB = 'G009_20'
  2169. ) Z
  2170. WHERE CATE_NO IS NOT NULL
  2171. ) A
  2172. , TB_COMMON_CODE CC
  2173. WHERE A.FILTER_CD = CC.CD
  2174. AND CC.CD_GB = 'G006'
  2175. AND CC.USE_YN = 'Y'
  2176. ;
  2177. -- 색상 필터 생성
  2178. INSERT INTO TB_CATE_FILTER_TMP (
  2179. SITE_CD
  2180. , CATE_GB
  2181. , FORMAL_GB
  2182. , BRAND_GROUP_NO
  2183. , CATE_NO
  2184. , FILTER_GB
  2185. , FILTER_CD
  2186. , FILTER_NM
  2187. , DISP_ORD
  2188. )
  2189. WITH TAB_FILTER AS (
  2190. SELECT C4.SITE_CD
  2191. , C4.CATE_GB
  2192. , G.FORMAL_GB
  2193. , CG.BRAND_GROUP_NO
  2194. , C4.CATE1_NO
  2195. , C4.CATE2_NO
  2196. , C4.CATE3_NO
  2197. , C4.CATE4_NO
  2198. , C4.CATE5_NO
  2199. , C.COLOR_GRP_CD AS FILTER_CD
  2200. FROM TB_CATE_4SRCH C4
  2201. , TB_CATE_GOODS CG
  2202. , TB_GOODS G
  2203. , TB_GOODS_STOCK GS
  2204. , TB_OPTION O
  2205. , TB_COLOR C
  2206. , TB_BRAND B
  2207. , TB_SITE_BRAND SB
  2208. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  2209. AND CG.BRAND_GROUP_NO = 0
  2210. AND CG.GOODS_CD = G.GOODS_CD
  2211. AND CG.GOODS_CD = GS.GOODS_CD
  2212. AND CG.GOODS_CD = O.GOODS_CD
  2213. AND O.OPT_CD1 = C.COLOR_CD
  2214. AND G.BRAND_CD = B.BRAND_CD
  2215. AND B.BRAND_CD = SB.BRAND_CD
  2216. AND C4.SITE_CD = 'G000_10'
  2217. AND C4.CATE_GB = 'G032_101'
  2218. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  2219. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  2220. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  2221. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  2222. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  2223. AND O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  2224. AND O.DISP_YN = 'Y' /*노출하는 옵션*/
  2225. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  2226. AND SB.SITE_CD = 'G000_10'
  2227. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  2228. )
  2229. SELECT A.SITE_CD
  2230. , A.CATE_GB
  2231. , A.FORMAL_GB
  2232. , A.BRAND_GROUP_NO
  2233. , A.CATE_NO
  2234. , 'COLOR' AS FILTER_GB
  2235. , A.FILTER_CD
  2236. , CC.CD_DESC AS FILTER_NM
  2237. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  2238. ORDER BY CC.DISP_ORD
  2239. ) AS DISP_ORD
  2240. FROM (
  2241. SELECT DISTINCT
  2242. SITE_CD
  2243. , CATE_GB
  2244. , FORMAL_GB
  2245. , BRAND_GROUP_NO
  2246. , CATE_NO
  2247. , FILTER_CD
  2248. FROM (
  2249. SELECT SITE_CD
  2250. , CATE_GB
  2251. , 'G009_10' AS FORMAL_GB
  2252. , BRAND_GROUP_NO
  2253. , CATE5_NO AS CATE_NO
  2254. , FILTER_CD
  2255. FROM TAB_FILTER
  2256. WHERE CATE5_NO IS NOT NULL
  2257. AND FORMAL_GB IN ('G009_10','G009_20')
  2258. UNION ALL
  2259. SELECT SITE_CD
  2260. , CATE_GB
  2261. , 'G009_10' AS FORMAL_GB
  2262. , BRAND_GROUP_NO
  2263. , CATE4_NO AS CATE_NO
  2264. , FILTER_CD
  2265. FROM TAB_FILTER
  2266. WHERE CATE4_NO IS NOT NULL
  2267. AND FORMAL_GB IN ('G009_10','G009_20')
  2268. UNION ALL
  2269. SELECT SITE_CD
  2270. , CATE_GB
  2271. , 'G009_10' AS FORMAL_GB
  2272. , BRAND_GROUP_NO
  2273. , CATE3_NO AS CATE_NO
  2274. , FILTER_CD
  2275. FROM TAB_FILTER
  2276. WHERE CATE3_NO IS NOT NULL
  2277. AND FORMAL_GB IN ('G009_10','G009_20')
  2278. UNION ALL
  2279. SELECT SITE_CD
  2280. , CATE_GB
  2281. , 'G009_10' AS FORMAL_GB
  2282. , BRAND_GROUP_NO
  2283. , CATE2_NO AS CATE_NO
  2284. , FILTER_CD
  2285. FROM TAB_FILTER
  2286. WHERE CATE2_NO IS NOT NULL
  2287. AND FORMAL_GB IN ('G009_10','G009_20')
  2288. UNION ALL
  2289. SELECT SITE_CD
  2290. , CATE_GB
  2291. , 'G009_10' AS FORMAL_GB
  2292. , BRAND_GROUP_NO
  2293. , CATE1_NO AS CATE_NO
  2294. , FILTER_CD
  2295. FROM TAB_FILTER
  2296. WHERE CATE1_NO IS NOT NULL
  2297. AND FORMAL_GB IN ('G009_10','G009_20')
  2298. UNION ALL
  2299. SELECT SITE_CD
  2300. , CATE_GB
  2301. , FORMAL_GB
  2302. , BRAND_GROUP_NO
  2303. , CATE5_NO AS CATE_NO
  2304. , FILTER_CD
  2305. FROM TAB_FILTER
  2306. WHERE CATE5_NO IS NOT NULL
  2307. AND FORMAL_GB = 'G009_20'
  2308. UNION ALL
  2309. SELECT SITE_CD
  2310. , CATE_GB
  2311. , FORMAL_GB
  2312. , BRAND_GROUP_NO
  2313. , CATE4_NO AS CATE_NO
  2314. , FILTER_CD
  2315. FROM TAB_FILTER
  2316. WHERE CATE4_NO IS NOT NULL
  2317. AND FORMAL_GB = 'G009_20'
  2318. UNION ALL
  2319. SELECT SITE_CD
  2320. , CATE_GB
  2321. , FORMAL_GB
  2322. , BRAND_GROUP_NO
  2323. , CATE3_NO AS CATE_NO
  2324. , FILTER_CD
  2325. FROM TAB_FILTER
  2326. WHERE CATE3_NO IS NOT NULL
  2327. AND FORMAL_GB = 'G009_20'
  2328. UNION ALL
  2329. SELECT SITE_CD
  2330. , CATE_GB
  2331. , FORMAL_GB
  2332. , BRAND_GROUP_NO
  2333. , CATE2_NO AS CATE_NO
  2334. , FILTER_CD
  2335. FROM TAB_FILTER
  2336. WHERE CATE2_NO IS NOT NULL
  2337. AND FORMAL_GB = 'G009_20'
  2338. UNION ALL
  2339. SELECT SITE_CD
  2340. , CATE_GB
  2341. , FORMAL_GB
  2342. , BRAND_GROUP_NO
  2343. , CATE1_NO AS CATE_NO
  2344. , FILTER_CD
  2345. FROM TAB_FILTER
  2346. WHERE CATE1_NO IS NOT NULL
  2347. AND FORMAL_GB = 'G009_20'
  2348. ) Z
  2349. WHERE CATE_NO IS NOT NULL
  2350. ) A
  2351. , TB_COMMON_CODE CC
  2352. WHERE A.FILTER_CD = CC.CD
  2353. AND CC.CD_GB = 'G072'
  2354. AND CC.USE_YN = 'Y'
  2355. ;
  2356. -- 혜택 필터 생성
  2357. INSERT INTO TB_CATE_FILTER_TMP (
  2358. SITE_CD
  2359. , CATE_GB
  2360. , FORMAL_GB
  2361. , BRAND_GROUP_NO
  2362. , CATE_NO
  2363. , FILTER_GB
  2364. , FILTER_CD
  2365. , FILTER_NM
  2366. , DISP_ORD
  2367. )
  2368. WITH TAB_FILTER AS (
  2369. SELECT C4.SITE_CD
  2370. , C4.CATE_GB
  2371. , G.FORMAL_GB
  2372. , CG.BRAND_GROUP_NO
  2373. , C4.CATE1_NO
  2374. , C4.CATE2_NO
  2375. , C4.CATE3_NO
  2376. , C4.CATE4_NO
  2377. , C4.CATE5_NO
  2378. , G.GOODS_CD
  2379. , GB.BENEFIT_GB
  2380. FROM TB_CATE_4SRCH C4
  2381. , TB_CATE_GOODS CG
  2382. , TB_GOODS G
  2383. , TB_GOODS_STOCK GS
  2384. , TB_GOODS_BENEFIT GB
  2385. , TB_BRAND B
  2386. , TB_SITE_BRAND SB
  2387. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  2388. AND CG.BRAND_GROUP_NO = 0
  2389. AND CG.GOODS_CD = G.GOODS_CD
  2390. AND CG.GOODS_CD = GS.GOODS_CD
  2391. AND CG.GOODS_CD = GB.GOODS_CD
  2392. AND G.BRAND_CD = B.BRAND_CD
  2393. AND B.BRAND_CD = SB.BRAND_CD
  2394. AND C4.SITE_CD = 'G000_10'
  2395. AND C4.CATE_GB = 'G032_101'
  2396. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  2397. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  2398. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  2399. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  2400. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  2401. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  2402. AND SB.SITE_CD = 'G000_10'
  2403. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  2404. )
  2405. SELECT SITE_CD
  2406. , CATE_GB
  2407. , FORMAL_GB
  2408. , BRAND_GROUP_NO
  2409. , CATE_NO
  2410. , 'BENEFIT' AS FILTER_GB
  2411. , FILTER_CD
  2412. , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
  2413. WHEN FILTER_CD = '20' THEN '무료배송'
  2414. WHEN FILTER_CD = '30' THEN '사은품'
  2415. WHEN FILTER_CD = '40' THEN '신상'
  2416. WHEN FILTER_CD = '50' THEN '총알배송'
  2417. END AS FILTER_NM
  2418. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  2419. ORDER BY FILTER_CD
  2420. ) AS DISP_ORD
  2421. FROM (
  2422. SELECT DISTINCT
  2423. SITE_CD
  2424. , CATE_GB
  2425. , 'G009_10' AS FORMAL_GB
  2426. , BRAND_GROUP_NO
  2427. , CATE5_NO AS CATE_NO
  2428. , BENEFIT_GB AS FILTER_CD
  2429. FROM TAB_FILTER
  2430. WHERE CATE5_NO IS NOT NULL
  2431. AND FORMAL_GB IN ('G009_10','G009_20')
  2432. UNION ALL
  2433. SELECT DISTINCT
  2434. SITE_CD
  2435. , CATE_GB
  2436. , 'G009_10' AS FORMAL_GB
  2437. , BRAND_GROUP_NO
  2438. , CATE4_NO AS CATE_NO
  2439. , BENEFIT_GB AS FILTER_CD
  2440. FROM TAB_FILTER
  2441. WHERE CATE4_NO IS NOT NULL
  2442. AND FORMAL_GB IN ('G009_10','G009_20')
  2443. UNION ALL
  2444. SELECT DISTINCT
  2445. SITE_CD
  2446. , CATE_GB
  2447. , 'G009_10' AS FORMAL_GB
  2448. , BRAND_GROUP_NO
  2449. , CATE3_NO AS CATE_NO
  2450. , BENEFIT_GB AS FILTER_CD
  2451. FROM TAB_FILTER
  2452. WHERE CATE3_NO IS NOT NULL
  2453. AND FORMAL_GB IN ('G009_10','G009_20')
  2454. UNION ALL
  2455. SELECT DISTINCT
  2456. SITE_CD
  2457. , CATE_GB
  2458. , 'G009_10' AS FORMAL_GB
  2459. , BRAND_GROUP_NO
  2460. , CATE2_NO AS CATE_NO
  2461. , BENEFIT_GB AS FILTER_CD
  2462. FROM TAB_FILTER
  2463. WHERE CATE2_NO IS NOT NULL
  2464. AND FORMAL_GB IN ('G009_10','G009_20')
  2465. UNION ALL
  2466. SELECT DISTINCT
  2467. SITE_CD
  2468. , CATE_GB
  2469. , 'G009_10' AS FORMAL_GB
  2470. , BRAND_GROUP_NO
  2471. , CATE1_NO AS CATE_NO
  2472. , BENEFIT_GB AS FILTER_CD
  2473. FROM TAB_FILTER
  2474. WHERE CATE1_NO IS NOT NULL
  2475. AND FORMAL_GB IN ('G009_10','G009_20')
  2476. UNION ALL
  2477. SELECT DISTINCT
  2478. SITE_CD
  2479. , CATE_GB
  2480. , 'G009_20' AS FORMAL_GB
  2481. , BRAND_GROUP_NO
  2482. , CATE5_NO AS CATE_NO
  2483. , BENEFIT_GB AS FILTER_CD
  2484. FROM TAB_FILTER
  2485. WHERE CATE5_NO IS NOT NULL
  2486. AND FORMAL_GB = 'G009_20'
  2487. UNION ALL
  2488. SELECT DISTINCT
  2489. SITE_CD
  2490. , CATE_GB
  2491. , 'G009_20' AS FORMAL_GB
  2492. , BRAND_GROUP_NO
  2493. , CATE4_NO AS CATE_NO
  2494. , BENEFIT_GB AS FILTER_CD
  2495. FROM TAB_FILTER
  2496. WHERE CATE4_NO IS NOT NULL
  2497. AND FORMAL_GB = 'G009_20'
  2498. UNION ALL
  2499. SELECT DISTINCT
  2500. SITE_CD
  2501. , CATE_GB
  2502. , 'G009_20' AS FORMAL_GB
  2503. , BRAND_GROUP_NO
  2504. , CATE3_NO AS CATE_NO
  2505. , BENEFIT_GB AS FILTER_CD
  2506. FROM TAB_FILTER
  2507. WHERE CATE3_NO IS NOT NULL
  2508. AND FORMAL_GB = 'G009_20'
  2509. UNION ALL
  2510. SELECT DISTINCT
  2511. SITE_CD
  2512. , CATE_GB
  2513. , 'G009_20' AS FORMAL_GB
  2514. , BRAND_GROUP_NO
  2515. , CATE2_NO AS CATE_NO
  2516. , BENEFIT_GB AS FILTER_CD
  2517. FROM TAB_FILTER
  2518. WHERE CATE2_NO IS NOT NULL
  2519. AND FORMAL_GB = 'G009_20'
  2520. UNION ALL
  2521. SELECT DISTINCT
  2522. SITE_CD
  2523. , CATE_GB
  2524. , 'G009_20' AS FORMAL_GB
  2525. , BRAND_GROUP_NO
  2526. , CATE1_NO AS CATE_NO
  2527. , BENEFIT_GB AS FILTER_CD
  2528. FROM TAB_FILTER
  2529. WHERE CATE1_NO IS NOT NULL
  2530. AND FORMAL_GB = 'G009_20'
  2531. ) Z
  2532. ;
  2533. TRUNCATE TABLE TB_CATE_FILTER;
  2534. INSERT INTO TB_CATE_FILTER
  2535. SELECT DISTINCT SITE_CD
  2536. , CATE_GB
  2537. , FORMAL_GB
  2538. , BRAND_GROUP_NO
  2539. , CATE_NO
  2540. , FILTER_GB
  2541. , FILTER_CD
  2542. , FILTER_NM
  2543. , DISP_ORD
  2544. , 2 AS REG_NO
  2545. , NOW() AS REG_DT
  2546. FROM TB_CATE_FILTER_TMP
  2547. ;
  2548. -- 브랜드별/ 카테고리별/ 정상이월 구분 o
  2549. -- 사이즈 필터 생성
  2550. INSERT INTO TB_CATE_FILTER_TMP (
  2551. SITE_CD
  2552. , CATE_GB
  2553. , FORMAL_GB
  2554. , BRAND_GROUP_NO
  2555. , CATE_NO
  2556. , FILTER_GB
  2557. , FILTER_CD
  2558. , FILTER_NM
  2559. , DISP_ORD
  2560. )
  2561. WITH TAB_FILTER AS (
  2562. SELECT C4.SITE_CD
  2563. , C4.CATE_GB
  2564. , G.FORMAL_GB
  2565. , B.BRAND_GROUP_NO
  2566. , C4.CATE1_NO
  2567. , C4.CATE2_NO
  2568. , C4.CATE3_NO
  2569. , C4.CATE4_NO
  2570. , C4.CATE5_NO
  2571. , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
  2572. , S.OPT_CD2 AS FILTER_NM
  2573. FROM TB_CATE_4SRCH C4
  2574. , TB_CATE_GOODS CG
  2575. , TB_GOODS G
  2576. , TB_ITEMKIND I
  2577. , VW_STOCK S
  2578. , TB_BRAND B
  2579. , TB_SITE_BRAND SB
  2580. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  2581. -- AND CG.BRAND_GROUP_NO = 0
  2582. AND CG.GOODS_CD = G.GOODS_CD
  2583. AND G.ITEMKIND_CD = I.ITEMKIND_CD
  2584. AND G.GOODS_CD = S.GOODS_CD
  2585. AND G.BRAND_CD = B.BRAND_CD
  2586. AND B.BRAND_CD = SB.BRAND_CD
  2587. AND C4.SITE_CD = 'G000_10'
  2588. AND C4.CATE_GB = 'G032_101'
  2589. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  2590. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  2591. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  2592. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  2593. AND I.SIZE_GB IS NOT NULL
  2594. AND S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는옵션*/
  2595. AND S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  2596. AND S.DISP_YN = 'Y' /*노출하는 옵션*/
  2597. AND LENGTH(S.OPT_CD2) > 0
  2598. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  2599. AND SB.SITE_CD = 'G000_10'
  2600. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  2601. )
  2602. SELECT SITE_CD
  2603. , CATE_GB
  2604. , FORMAL_GB
  2605. , BRAND_GROUP_NO
  2606. , CATE_NO
  2607. , 'SIZE' AS FILTER_GB
  2608. , FILTER_CD
  2609. , FILTER_NM
  2610. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  2611. ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
  2612. WHEN FILTER_CD LIKE 'B%' THEN 2
  2613. WHEN FILTER_CD LIKE 'S%' THEN 3
  2614. ELSE 4
  2615. END, FILTER_NM
  2616. ) AS DISP_ORD
  2617. FROM (
  2618. SELECT DISTINCT
  2619. SITE_CD
  2620. , CATE_GB
  2621. , FORMAL_GB
  2622. , BRAND_GROUP_NO
  2623. , CATE_NO
  2624. , FILTER_CD
  2625. , FILTER_NM
  2626. FROM (
  2627. SELECT SITE_CD
  2628. , CATE_GB
  2629. , 'G009_10' AS FORMAL_GB
  2630. , BRAND_GROUP_NO
  2631. , CATE5_NO AS CATE_NO
  2632. , FILTER_CD
  2633. , FILTER_NM
  2634. FROM TAB_FILTER
  2635. WHERE CATE5_NO IS NOT NULL
  2636. AND FORMAL_GB IN ('G009_10','G009_20')
  2637. UNION ALL
  2638. SELECT SITE_CD
  2639. , CATE_GB
  2640. , 'G009_10' AS FORMAL_GB
  2641. , BRAND_GROUP_NO
  2642. , CATE4_NO AS CATE_NO
  2643. , FILTER_CD
  2644. , FILTER_NM
  2645. FROM TAB_FILTER
  2646. WHERE CATE4_NO IS NOT NULL
  2647. AND FORMAL_GB IN ('G009_10','G009_20')
  2648. UNION ALL
  2649. SELECT SITE_CD
  2650. , CATE_GB
  2651. , 'G009_10' AS FORMAL_GB
  2652. , BRAND_GROUP_NO
  2653. , CATE3_NO AS CATE_NO
  2654. , FILTER_CD
  2655. , FILTER_NM
  2656. FROM TAB_FILTER
  2657. WHERE CATE3_NO IS NOT NULL
  2658. AND FORMAL_GB IN ('G009_10','G009_20')
  2659. UNION ALL
  2660. SELECT SITE_CD
  2661. , CATE_GB
  2662. , 'G009_10' AS FORMAL_GB
  2663. , BRAND_GROUP_NO
  2664. , CATE2_NO AS CATE_NO
  2665. , FILTER_CD
  2666. , FILTER_NM
  2667. FROM TAB_FILTER
  2668. WHERE CATE2_NO IS NOT NULL
  2669. AND FORMAL_GB IN ('G009_10','G009_20')
  2670. UNION ALL
  2671. SELECT SITE_CD
  2672. , CATE_GB
  2673. , 'G009_10' AS FORMAL_GB
  2674. , BRAND_GROUP_NO
  2675. , CATE1_NO AS CATE_NO
  2676. , FILTER_CD
  2677. , FILTER_NM
  2678. FROM TAB_FILTER
  2679. WHERE CATE1_NO IS NOT NULL
  2680. AND FORMAL_GB IN ('G009_10','G009_20')
  2681. UNION ALL
  2682. SELECT SITE_CD
  2683. , CATE_GB
  2684. , FORMAL_GB
  2685. , BRAND_GROUP_NO
  2686. , CATE5_NO AS CATE_NO
  2687. , FILTER_CD
  2688. , FILTER_NM
  2689. FROM TAB_FILTER
  2690. WHERE CATE5_NO IS NOT NULL
  2691. AND FORMAL_GB = 'G009_20'
  2692. UNION ALL
  2693. SELECT SITE_CD
  2694. , CATE_GB
  2695. , FORMAL_GB
  2696. , BRAND_GROUP_NO
  2697. , CATE4_NO AS CATE_NO
  2698. , FILTER_CD
  2699. , FILTER_NM
  2700. FROM TAB_FILTER
  2701. WHERE CATE4_NO IS NOT NULL
  2702. AND FORMAL_GB = 'G009_20'
  2703. UNION ALL
  2704. SELECT SITE_CD
  2705. , CATE_GB
  2706. , FORMAL_GB
  2707. , BRAND_GROUP_NO
  2708. , CATE3_NO AS CATE_NO
  2709. , FILTER_CD
  2710. , FILTER_NM
  2711. FROM TAB_FILTER
  2712. WHERE CATE3_NO IS NOT NULL
  2713. AND FORMAL_GB = 'G009_20'
  2714. UNION ALL
  2715. SELECT SITE_CD
  2716. , CATE_GB
  2717. , FORMAL_GB
  2718. , BRAND_GROUP_NO
  2719. , CATE2_NO AS CATE_NO
  2720. , FILTER_CD
  2721. , FILTER_NM
  2722. FROM TAB_FILTER
  2723. WHERE CATE2_NO IS NOT NULL
  2724. AND FORMAL_GB = 'G009_20'
  2725. UNION ALL
  2726. SELECT SITE_CD
  2727. , CATE_GB
  2728. , FORMAL_GB
  2729. , BRAND_GROUP_NO
  2730. , CATE1_NO AS CATE_NO
  2731. , FILTER_CD
  2732. , FILTER_NM
  2733. FROM TAB_FILTER
  2734. WHERE CATE1_NO IS NOT NULL
  2735. AND FORMAL_GB = 'G009_20'
  2736. ) Z
  2737. WHERE CATE_NO IS NOT NULL
  2738. ) Z
  2739. ;
  2740. -- 가격 필터 생성
  2741. INSERT INTO TB_CATE_FILTER_TMP (
  2742. SITE_CD
  2743. , CATE_GB
  2744. , FORMAL_GB
  2745. , BRAND_GROUP_NO
  2746. , CATE_NO
  2747. , FILTER_GB
  2748. , FILTER_CD
  2749. , FILTER_NM
  2750. , DISP_ORD
  2751. )
  2752. WITH TAB_FILTER AS (
  2753. SELECT C4.SITE_CD
  2754. , C4.CATE_GB
  2755. , G.FORMAL_GB
  2756. , B.BRAND_GROUP_NO
  2757. , C4.CATE1_NO
  2758. , C4.CATE2_NO
  2759. , C4.CATE3_NO
  2760. , C4.CATE4_NO
  2761. , C4.CATE5_NO
  2762. , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
  2763. FROM TB_CATE_4SRCH C4
  2764. , TB_CATE_GOODS CG
  2765. , TB_GOODS G
  2766. , TB_GOODS_STOCK GS
  2767. , TB_BRAND B
  2768. , TB_SITE_BRAND SB
  2769. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  2770. -- AND CG.BRAND_GROUP_NO = 0
  2771. AND CG.GOODS_CD = G.GOODS_CD
  2772. AND CG.GOODS_CD = GS.GOODS_CD
  2773. AND G.BRAND_CD = B.BRAND_CD
  2774. AND B.BRAND_CD = SB.BRAND_CD
  2775. AND C4.SITE_CD = 'G000_10'
  2776. AND C4.CATE_GB = 'G032_101'
  2777. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  2778. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  2779. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  2780. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  2781. AND GS.STOCK_QTY > 0 /*재고있는옵션*/
  2782. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  2783. AND SB.SITE_CD = 'G000_10'
  2784. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  2785. )
  2786. , TAB_PRICE AS (
  2787. SELECT SITE_CD
  2788. , CATE_GB
  2789. , 'G009_10' AS FORMAL_GB
  2790. , BRAND_GROUP_NO
  2791. , CATE_NO
  2792. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2793. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2794. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2795. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2796. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2797. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2798. FROM (
  2799. SELECT SITE_CD
  2800. , CATE_GB
  2801. , BRAND_GROUP_NO
  2802. , CATE1_NO AS CATE_NO
  2803. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2804. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2805. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2806. FROM TAB_FILTER
  2807. WHERE CATE1_NO IS NOT NULL
  2808. AND FORMAL_GB IN ('G009_10','G009_20')
  2809. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
  2810. ) Z
  2811. UNION ALL
  2812. SELECT SITE_CD
  2813. , CATE_GB
  2814. , 'G009_10' AS FORMAL_GB
  2815. , BRAND_GROUP_NO
  2816. , CATE_NO
  2817. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2818. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2819. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2820. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2821. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2822. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2823. FROM (
  2824. SELECT SITE_CD
  2825. , CATE_GB
  2826. , BRAND_GROUP_NO
  2827. , CATE2_NO AS CATE_NO
  2828. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2829. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2830. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2831. FROM TAB_FILTER
  2832. WHERE CATE2_NO IS NOT NULL
  2833. AND FORMAL_GB IN ('G009_10','G009_20')
  2834. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
  2835. ) Z
  2836. UNION ALL
  2837. SELECT SITE_CD
  2838. , CATE_GB
  2839. , 'G009_10' AS FORMAL_GB
  2840. , BRAND_GROUP_NO
  2841. , CATE_NO
  2842. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2843. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2844. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2845. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2846. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2847. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2848. FROM (
  2849. SELECT SITE_CD
  2850. , CATE_GB
  2851. , BRAND_GROUP_NO
  2852. , CATE3_NO AS CATE_NO
  2853. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2854. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2855. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2856. FROM TAB_FILTER
  2857. WHERE CATE3_NO IS NOT NULL
  2858. AND FORMAL_GB IN ('G009_10','G009_20')
  2859. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
  2860. ) Z
  2861. UNION ALL
  2862. SELECT SITE_CD
  2863. , CATE_GB
  2864. , 'G009_10' AS FORMAL_GB
  2865. , BRAND_GROUP_NO
  2866. , CATE_NO
  2867. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2868. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2869. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2870. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2871. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2872. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2873. FROM (
  2874. SELECT SITE_CD
  2875. , CATE_GB
  2876. , BRAND_GROUP_NO
  2877. , CATE4_NO AS CATE_NO
  2878. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2879. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2880. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2881. FROM TAB_FILTER
  2882. WHERE CATE4_NO IS NOT NULL
  2883. AND FORMAL_GB IN ('G009_10','G009_20')
  2884. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
  2885. ) Z
  2886. UNION ALL
  2887. SELECT SITE_CD
  2888. , CATE_GB
  2889. , 'G009_10' AS FORMAL_GB
  2890. , BRAND_GROUP_NO
  2891. , CATE_NO
  2892. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2893. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2894. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2895. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2896. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2897. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2898. FROM (
  2899. SELECT SITE_CD
  2900. , CATE_GB
  2901. , BRAND_GROUP_NO
  2902. , CATE5_NO AS CATE_NO
  2903. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2904. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2905. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2906. FROM TAB_FILTER
  2907. WHERE CATE5_NO IS NOT NULL
  2908. AND FORMAL_GB IN ('G009_10','G009_20')
  2909. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
  2910. ) Z
  2911. UNION ALL
  2912. SELECT SITE_CD
  2913. , CATE_GB
  2914. , 'G009_20' AS FORMAL_GB
  2915. , BRAND_GROUP_NO
  2916. , CATE_NO
  2917. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2918. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2919. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2920. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2921. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2922. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2923. FROM (
  2924. SELECT SITE_CD
  2925. , CATE_GB
  2926. , BRAND_GROUP_NO
  2927. , CATE1_NO AS CATE_NO
  2928. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2929. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2930. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2931. FROM TAB_FILTER
  2932. WHERE CATE1_NO IS NOT NULL
  2933. AND FORMAL_GB = 'G009_20'
  2934. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
  2935. ) Z
  2936. UNION ALL
  2937. SELECT SITE_CD
  2938. , CATE_GB
  2939. , 'G009_20' AS FORMAL_GB
  2940. , BRAND_GROUP_NO
  2941. , CATE_NO
  2942. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2943. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2944. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2945. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2946. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2947. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2948. FROM (
  2949. SELECT SITE_CD
  2950. , CATE_GB
  2951. , BRAND_GROUP_NO
  2952. , CATE2_NO AS CATE_NO
  2953. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2954. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2955. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2956. FROM TAB_FILTER
  2957. WHERE CATE2_NO IS NOT NULL
  2958. AND FORMAL_GB = 'G009_20'
  2959. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
  2960. ) Z
  2961. UNION ALL
  2962. SELECT SITE_CD
  2963. , CATE_GB
  2964. , 'G009_20' AS FORMAL_GB
  2965. , BRAND_GROUP_NO
  2966. , CATE_NO
  2967. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2968. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2969. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2970. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2971. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2972. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2973. FROM (
  2974. SELECT SITE_CD
  2975. , CATE_GB
  2976. , BRAND_GROUP_NO
  2977. , CATE3_NO AS CATE_NO
  2978. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  2979. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  2980. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  2981. FROM TAB_FILTER
  2982. WHERE CATE3_NO IS NOT NULL
  2983. AND FORMAL_GB = 'G009_20'
  2984. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
  2985. ) Z
  2986. UNION ALL
  2987. SELECT SITE_CD
  2988. , CATE_GB
  2989. , 'G009_20' AS FORMAL_GB
  2990. , BRAND_GROUP_NO
  2991. , CATE_NO
  2992. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  2993. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  2994. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  2995. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  2996. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  2997. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  2998. FROM (
  2999. SELECT SITE_CD
  3000. , CATE_GB
  3001. , BRAND_GROUP_NO
  3002. , CATE4_NO AS CATE_NO
  3003. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  3004. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  3005. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  3006. FROM TAB_FILTER
  3007. WHERE CATE4_NO IS NOT NULL
  3008. AND FORMAL_GB = 'G009_20'
  3009. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
  3010. ) Z
  3011. UNION ALL
  3012. SELECT SITE_CD
  3013. , CATE_GB
  3014. , 'G009_20' AS FORMAL_GB
  3015. , BRAND_GROUP_NO
  3016. , CATE_NO
  3017. , FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1
  3018. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
  3019. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
  3020. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
  3021. , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
  3022. , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6
  3023. FROM (
  3024. SELECT SITE_CD
  3025. , CATE_GB
  3026. , BRAND_GROUP_NO
  3027. , CATE5_NO AS CATE_NO
  3028. , MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/
  3029. , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/
  3030. , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
  3031. FROM TAB_FILTER
  3032. WHERE CATE5_NO IS NOT NULL
  3033. AND FORMAL_GB = 'G009_20'
  3034. GROUP BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
  3035. ) Z
  3036. )
  3037. SELECT DISTINCT
  3038. SITE_CD
  3039. , CATE_GB
  3040. , FORMAL_GB
  3041. , BRAND_GROUP_NO
  3042. , CATE_NO
  3043. , 'PRICE' AS FILTER_GB
  3044. , FILTER_CD
  3045. , FILTER_NM
  3046. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  3047. ORDER BY FILTER_CD
  3048. ) AS DISP_ORD
  3049. FROM (
  3050. SELECT SITE_CD
  3051. , CATE_GB
  3052. , FORMAL_GB
  3053. , BRAND_GROUP_NO
  3054. , CATE_NO
  3055. , PRICE1 AS FILTER_CD
  3056. , PRICE1 AS FILTER_NM
  3057. FROM TAB_PRICE
  3058. UNION ALL
  3059. SELECT SITE_CD
  3060. , CATE_GB
  3061. , FORMAL_GB
  3062. , BRAND_GROUP_NO
  3063. , CATE_NO
  3064. , PRICE2 AS FILTER_CD
  3065. , PRICE2 AS FILTER_NM
  3066. FROM TAB_PRICE
  3067. UNION ALL
  3068. SELECT SITE_CD
  3069. , CATE_GB
  3070. , FORMAL_GB
  3071. , BRAND_GROUP_NO
  3072. , CATE_NO
  3073. , PRICE3 AS FILTER_CD
  3074. , PRICE3 AS FILTER_NM
  3075. FROM TAB_PRICE
  3076. UNION ALL
  3077. SELECT SITE_CD
  3078. , CATE_GB
  3079. , FORMAL_GB
  3080. , BRAND_GROUP_NO
  3081. , CATE_NO
  3082. , PRICE4 AS FILTER_CD
  3083. , PRICE4 AS FILTER_NM
  3084. FROM TAB_PRICE
  3085. UNION ALL
  3086. SELECT SITE_CD
  3087. , CATE_GB
  3088. , FORMAL_GB
  3089. , BRAND_GROUP_NO
  3090. , CATE_NO
  3091. , PRICE5 AS FILTER_CD
  3092. , PRICE5 AS FILTER_NM
  3093. FROM TAB_PRICE
  3094. UNION ALL
  3095. SELECT SITE_CD
  3096. , CATE_GB
  3097. , FORMAL_GB
  3098. , BRAND_GROUP_NO
  3099. , CATE_NO
  3100. , PRICE6 AS FILTER_CD
  3101. , PRICE6 AS FILTER_NM
  3102. FROM TAB_PRICE
  3103. ) Z
  3104. ;
  3105. -- 연령대 필터 생성
  3106. INSERT INTO TB_CATE_FILTER_TMP (
  3107. SITE_CD
  3108. , CATE_GB
  3109. , FORMAL_GB
  3110. , BRAND_GROUP_NO
  3111. , CATE_NO
  3112. , FILTER_GB
  3113. , FILTER_CD
  3114. , FILTER_NM
  3115. , DISP_ORD
  3116. )
  3117. WITH TAB_FILTER AS (
  3118. SELECT C4.SITE_CD
  3119. , C4.CATE_GB
  3120. , G.FORMAL_GB
  3121. , B.BRAND_GROUP_NO
  3122. , C4.CATE1_NO
  3123. , C4.CATE2_NO
  3124. , C4.CATE3_NO
  3125. , C4.CATE4_NO
  3126. , C4.CATE5_NO
  3127. , G.AGE_GRP_CD AS FILTER_CD
  3128. FROM TB_CATE_4SRCH C4
  3129. , TB_CATE_GOODS CG
  3130. , TB_GOODS G
  3131. , TB_GOODS_STOCK GS
  3132. , TB_BRAND B
  3133. , TB_SITE_BRAND SB
  3134. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  3135. -- AND CG.BRAND_GROUP_NO = 0
  3136. AND CG.GOODS_CD = G.GOODS_CD
  3137. AND CG.GOODS_CD = GS.GOODS_CD
  3138. AND G.BRAND_CD = B.BRAND_CD
  3139. AND B.BRAND_CD = SB.BRAND_CD
  3140. AND C4.SITE_CD = 'G000_10'
  3141. AND C4.CATE_GB = 'G032_101'
  3142. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  3143. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  3144. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  3145. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  3146. AND G.AGE_GRP_CD IS NOT NULL
  3147. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  3148. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  3149. AND SB.SITE_CD = 'G000_10'
  3150. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  3151. )
  3152. SELECT A.SITE_CD
  3153. , A.CATE_GB
  3154. , A.FORMAL_GB
  3155. , A.BRAND_GROUP_NO
  3156. , A.CATE_NO
  3157. , 'AGE' AS FILTER_GB
  3158. , A.FILTER_CD
  3159. , CC.CD_NM AS FILTER_NM
  3160. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  3161. ORDER BY CC.DISP_ORD
  3162. ) AS DISP_ORD
  3163. FROM (
  3164. SELECT DISTINCT
  3165. SITE_CD
  3166. , CATE_GB
  3167. , FORMAL_GB
  3168. , BRAND_GROUP_NO
  3169. , CATE_NO
  3170. , FILTER_CD
  3171. FROM (
  3172. SELECT SITE_CD
  3173. , CATE_GB
  3174. , 'G009_10' AS FORMAL_GB
  3175. , BRAND_GROUP_NO
  3176. , CATE5_NO AS CATE_NO
  3177. , FILTER_CD
  3178. FROM TAB_FILTER
  3179. WHERE CATE5_NO IS NOT NULL
  3180. AND FORMAL_GB IN ('G009_10','G009_20')
  3181. UNION ALL
  3182. SELECT SITE_CD
  3183. , CATE_GB
  3184. , 'G009_10' AS FORMAL_GB
  3185. , BRAND_GROUP_NO
  3186. , CATE4_NO AS CATE_NO
  3187. , FILTER_CD
  3188. FROM TAB_FILTER
  3189. WHERE CATE4_NO IS NOT NULL
  3190. AND FORMAL_GB IN ('G009_10','G009_20')
  3191. UNION ALL
  3192. SELECT SITE_CD
  3193. , CATE_GB
  3194. , 'G009_10' AS FORMAL_GB
  3195. , BRAND_GROUP_NO
  3196. , CATE3_NO AS CATE_NO
  3197. , FILTER_CD
  3198. FROM TAB_FILTER
  3199. WHERE CATE3_NO IS NOT NULL
  3200. AND FORMAL_GB IN ('G009_10','G009_20')
  3201. UNION ALL
  3202. SELECT SITE_CD
  3203. , CATE_GB
  3204. , 'G009_10' AS FORMAL_GB
  3205. , BRAND_GROUP_NO
  3206. , CATE2_NO AS CATE_NO
  3207. , FILTER_CD
  3208. FROM TAB_FILTER
  3209. WHERE CATE2_NO IS NOT NULL
  3210. AND FORMAL_GB IN ('G009_10','G009_20')
  3211. UNION ALL
  3212. SELECT SITE_CD
  3213. , CATE_GB
  3214. , 'G009_10' AS FORMAL_GB
  3215. , BRAND_GROUP_NO
  3216. , CATE1_NO AS CATE_NO
  3217. , FILTER_CD
  3218. FROM TAB_FILTER
  3219. WHERE CATE1_NO IS NOT NULL
  3220. AND FORMAL_GB IN ('G009_10','G009_20')
  3221. UNION ALL
  3222. SELECT SITE_CD
  3223. , CATE_GB
  3224. , FORMAL_GB
  3225. , BRAND_GROUP_NO
  3226. , CATE5_NO AS CATE_NO
  3227. , FILTER_CD
  3228. FROM TAB_FILTER
  3229. WHERE CATE5_NO IS NOT NULL
  3230. AND FORMAL_GB = 'G009_20'
  3231. UNION ALL
  3232. SELECT SITE_CD
  3233. , CATE_GB
  3234. , FORMAL_GB
  3235. , BRAND_GROUP_NO
  3236. , CATE4_NO AS CATE_NO
  3237. , FILTER_CD
  3238. FROM TAB_FILTER
  3239. WHERE CATE4_NO IS NOT NULL
  3240. AND FORMAL_GB = 'G009_20'
  3241. UNION ALL
  3242. SELECT SITE_CD
  3243. , CATE_GB
  3244. , FORMAL_GB
  3245. , BRAND_GROUP_NO
  3246. , CATE3_NO AS CATE_NO
  3247. , FILTER_CD
  3248. FROM TAB_FILTER
  3249. WHERE CATE3_NO IS NOT NULL
  3250. AND FORMAL_GB = 'G009_20'
  3251. UNION ALL
  3252. SELECT SITE_CD
  3253. , CATE_GB
  3254. , FORMAL_GB
  3255. , BRAND_GROUP_NO
  3256. , CATE2_NO AS CATE_NO
  3257. , FILTER_CD
  3258. FROM TAB_FILTER
  3259. WHERE CATE2_NO IS NOT NULL
  3260. AND FORMAL_GB = 'G009_20'
  3261. UNION ALL
  3262. SELECT SITE_CD
  3263. , CATE_GB
  3264. , FORMAL_GB
  3265. , BRAND_GROUP_NO
  3266. , CATE1_NO AS CATE_NO
  3267. , FILTER_CD
  3268. FROM TAB_FILTER
  3269. WHERE CATE1_NO IS NOT NULL
  3270. AND FORMAL_GB = 'G009_20'
  3271. ) Z
  3272. WHERE CATE_NO IS NOT NULL
  3273. ) A
  3274. , TB_COMMON_CODE CC
  3275. WHERE A.FILTER_CD = CC.CD
  3276. AND CC.CD_GB = 'G023'
  3277. AND CC.USE_YN = 'Y'
  3278. ;
  3279. -- 시즌 필터 생성
  3280. INSERT INTO TB_CATE_FILTER_TMP (
  3281. SITE_CD
  3282. , CATE_GB
  3283. , FORMAL_GB
  3284. , BRAND_GROUP_NO
  3285. , CATE_NO
  3286. , FILTER_GB
  3287. , FILTER_CD
  3288. , FILTER_NM
  3289. , DISP_ORD
  3290. )
  3291. WITH TAB_FILTER AS (
  3292. SELECT C4.SITE_CD
  3293. , C4.CATE_GB
  3294. , G.FORMAL_GB
  3295. , B.BRAND_GROUP_NO
  3296. , C4.CATE1_NO
  3297. , C4.CATE2_NO
  3298. , C4.CATE3_NO
  3299. , C4.CATE4_NO
  3300. , C4.CATE5_NO
  3301. , G.SEASON_CD AS FILTER_CD
  3302. FROM TB_CATE_4SRCH C4
  3303. , TB_CATE_GOODS CG
  3304. , TB_GOODS G
  3305. , TB_GOODS_STOCK GS
  3306. , TB_BRAND B
  3307. , TB_SITE_BRAND SB
  3308. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  3309. -- AND CG.BRAND_GROUP_NO = 0
  3310. AND CG.GOODS_CD = G.GOODS_CD
  3311. AND CG.GOODS_CD = GS.GOODS_CD
  3312. AND G.BRAND_CD = B.BRAND_CD
  3313. AND B.BRAND_CD = SB.BRAND_CD
  3314. AND C4.SITE_CD = 'G000_10'
  3315. AND C4.CATE_GB = 'G032_101'
  3316. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  3317. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  3318. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  3319. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  3320. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  3321. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  3322. AND SB.SITE_CD = 'G000_10'
  3323. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  3324. )
  3325. SELECT A.SITE_CD
  3326. , A.CATE_GB
  3327. , A.FORMAL_GB
  3328. , A.BRAND_GROUP_NO
  3329. , A.CATE_NO
  3330. , 'SEASON' AS FILTER_GB
  3331. , A.FILTER_CD
  3332. , CC.CD_NM AS FILTER_NM
  3333. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  3334. ORDER BY CC.DISP_ORD
  3335. ) AS DISP_ORD
  3336. FROM (
  3337. SELECT DISTINCT
  3338. SITE_CD
  3339. , CATE_GB
  3340. , FORMAL_GB
  3341. , BRAND_GROUP_NO
  3342. , CATE_NO
  3343. , FILTER_CD
  3344. FROM (
  3345. SELECT SITE_CD
  3346. , CATE_GB
  3347. , 'G009_10' AS FORMAL_GB
  3348. , BRAND_GROUP_NO
  3349. , CATE5_NO AS CATE_NO
  3350. , FILTER_CD
  3351. FROM TAB_FILTER
  3352. WHERE CATE5_NO IS NOT NULL
  3353. AND FORMAL_GB IN ('G009_10','G009_20')
  3354. UNION ALL
  3355. SELECT SITE_CD
  3356. , CATE_GB
  3357. , 'G009_10' AS FORMAL_GB
  3358. , BRAND_GROUP_NO
  3359. , CATE4_NO AS CATE_NO
  3360. , FILTER_CD
  3361. FROM TAB_FILTER
  3362. WHERE CATE4_NO IS NOT NULL
  3363. AND FORMAL_GB IN ('G009_10','G009_20')
  3364. UNION ALL
  3365. SELECT SITE_CD
  3366. , CATE_GB
  3367. , 'G009_10' AS FORMAL_GB
  3368. , BRAND_GROUP_NO
  3369. , CATE3_NO AS CATE_NO
  3370. , FILTER_CD
  3371. FROM TAB_FILTER
  3372. WHERE CATE3_NO IS NOT NULL
  3373. AND FORMAL_GB IN ('G009_10','G009_20')
  3374. UNION ALL
  3375. SELECT SITE_CD
  3376. , CATE_GB
  3377. , 'G009_10' AS FORMAL_GB
  3378. , BRAND_GROUP_NO
  3379. , CATE2_NO AS CATE_NO
  3380. , FILTER_CD
  3381. FROM TAB_FILTER
  3382. WHERE CATE2_NO IS NOT NULL
  3383. AND FORMAL_GB IN ('G009_10','G009_20')
  3384. UNION ALL
  3385. SELECT SITE_CD
  3386. , CATE_GB
  3387. , 'G009_10' AS FORMAL_GB
  3388. , BRAND_GROUP_NO
  3389. , CATE1_NO AS CATE_NO
  3390. , FILTER_CD
  3391. FROM TAB_FILTER
  3392. WHERE CATE1_NO IS NOT NULL
  3393. AND FORMAL_GB IN ('G009_10','G009_20')
  3394. UNION ALL
  3395. SELECT SITE_CD
  3396. , CATE_GB
  3397. , FORMAL_GB
  3398. , BRAND_GROUP_NO
  3399. , CATE5_NO AS CATE_NO
  3400. , FILTER_CD
  3401. FROM TAB_FILTER
  3402. WHERE CATE5_NO IS NOT NULL
  3403. AND FORMAL_GB = 'G009_20'
  3404. UNION ALL
  3405. SELECT SITE_CD
  3406. , CATE_GB
  3407. , FORMAL_GB
  3408. , BRAND_GROUP_NO
  3409. , CATE4_NO AS CATE_NO
  3410. , FILTER_CD
  3411. FROM TAB_FILTER
  3412. WHERE CATE4_NO IS NOT NULL
  3413. AND FORMAL_GB = 'G009_20'
  3414. UNION ALL
  3415. SELECT SITE_CD
  3416. , CATE_GB
  3417. , FORMAL_GB
  3418. , BRAND_GROUP_NO
  3419. , CATE3_NO AS CATE_NO
  3420. , FILTER_CD
  3421. FROM TAB_FILTER
  3422. WHERE CATE3_NO IS NOT NULL
  3423. AND FORMAL_GB = 'G009_20'
  3424. UNION ALL
  3425. SELECT SITE_CD
  3426. , CATE_GB
  3427. , FORMAL_GB
  3428. , BRAND_GROUP_NO
  3429. , CATE2_NO AS CATE_NO
  3430. , FILTER_CD
  3431. FROM TAB_FILTER
  3432. WHERE CATE2_NO IS NOT NULL
  3433. AND FORMAL_GB = 'G009_20'
  3434. UNION ALL
  3435. SELECT SITE_CD
  3436. , CATE_GB
  3437. , FORMAL_GB
  3438. , BRAND_GROUP_NO
  3439. , CATE1_NO AS CATE_NO
  3440. , FILTER_CD
  3441. FROM TAB_FILTER
  3442. WHERE CATE1_NO IS NOT NULL
  3443. AND FORMAL_GB = 'G009_20'
  3444. ) Z
  3445. WHERE CATE_NO IS NOT NULL
  3446. ) A
  3447. , TB_COMMON_CODE CC
  3448. WHERE A.FILTER_CD = CC.CD
  3449. AND CC.CD_GB = 'G006'
  3450. AND CC.USE_YN = 'Y'
  3451. ;
  3452. -- 색상 필터 생성
  3453. INSERT INTO TB_CATE_FILTER_TMP (
  3454. SITE_CD
  3455. , CATE_GB
  3456. , FORMAL_GB
  3457. , BRAND_GROUP_NO
  3458. , CATE_NO
  3459. , FILTER_GB
  3460. , FILTER_CD
  3461. , FILTER_NM
  3462. , DISP_ORD
  3463. )
  3464. WITH TAB_FILTER AS (
  3465. SELECT C4.SITE_CD
  3466. , C4.CATE_GB
  3467. , G.FORMAL_GB
  3468. , B.BRAND_GROUP_NO
  3469. , C4.CATE1_NO
  3470. , C4.CATE2_NO
  3471. , C4.CATE3_NO
  3472. , C4.CATE4_NO
  3473. , C4.CATE5_NO
  3474. , C.COLOR_GRP_CD AS FILTER_CD
  3475. FROM TB_CATE_4SRCH C4
  3476. , TB_CATE_GOODS CG
  3477. , TB_GOODS G
  3478. , TB_GOODS_STOCK GS
  3479. , TB_OPTION O
  3480. , TB_COLOR C
  3481. , TB_BRAND B
  3482. , TB_SITE_BRAND SB
  3483. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  3484. -- AND CG.BRAND_GROUP_NO = 0
  3485. AND CG.GOODS_CD = G.GOODS_CD
  3486. AND CG.GOODS_CD = GS.GOODS_CD
  3487. AND CG.GOODS_CD = O.GOODS_CD
  3488. AND O.OPT_CD1 = C.COLOR_CD
  3489. AND G.BRAND_CD = B.BRAND_CD
  3490. AND B.BRAND_CD = SB.BRAND_CD
  3491. AND C4.SITE_CD = 'G000_10'
  3492. AND C4.CATE_GB = 'G032_101'
  3493. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  3494. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  3495. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  3496. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  3497. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  3498. AND O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
  3499. AND O.DISP_YN = 'Y' /*노출하는 옵션*/
  3500. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  3501. AND SB.SITE_CD = 'G000_10'
  3502. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  3503. )
  3504. SELECT A.SITE_CD
  3505. , A.CATE_GB
  3506. , A.FORMAL_GB
  3507. , A.BRAND_GROUP_NO
  3508. , A.CATE_NO
  3509. , 'COLOR' AS FILTER_GB
  3510. , A.FILTER_CD
  3511. , CC.CD_DESC AS FILTER_NM
  3512. , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
  3513. ORDER BY CC.DISP_ORD
  3514. ) AS DISP_ORD
  3515. FROM (
  3516. SELECT DISTINCT
  3517. SITE_CD
  3518. , CATE_GB
  3519. , FORMAL_GB
  3520. , BRAND_GROUP_NO
  3521. , CATE_NO
  3522. , FILTER_CD
  3523. FROM (
  3524. SELECT SITE_CD
  3525. , CATE_GB
  3526. , 'G009_10' AS FORMAL_GB
  3527. , BRAND_GROUP_NO
  3528. , CATE5_NO AS CATE_NO
  3529. , FILTER_CD
  3530. FROM TAB_FILTER
  3531. WHERE CATE5_NO IS NOT NULL
  3532. AND FORMAL_GB IN ('G009_10','G009_20')
  3533. UNION ALL
  3534. SELECT SITE_CD
  3535. , CATE_GB
  3536. , 'G009_10' AS FORMAL_GB
  3537. , BRAND_GROUP_NO
  3538. , CATE4_NO AS CATE_NO
  3539. , FILTER_CD
  3540. FROM TAB_FILTER
  3541. WHERE CATE4_NO IS NOT NULL
  3542. AND FORMAL_GB IN ('G009_10','G009_20')
  3543. UNION ALL
  3544. SELECT SITE_CD
  3545. , CATE_GB
  3546. , 'G009_10' AS FORMAL_GB
  3547. , BRAND_GROUP_NO
  3548. , CATE3_NO AS CATE_NO
  3549. , FILTER_CD
  3550. FROM TAB_FILTER
  3551. WHERE CATE3_NO IS NOT NULL
  3552. AND FORMAL_GB IN ('G009_10','G009_20')
  3553. UNION ALL
  3554. SELECT SITE_CD
  3555. , CATE_GB
  3556. , 'G009_10' AS FORMAL_GB
  3557. , BRAND_GROUP_NO
  3558. , CATE2_NO AS CATE_NO
  3559. , FILTER_CD
  3560. FROM TAB_FILTER
  3561. WHERE CATE2_NO IS NOT NULL
  3562. AND FORMAL_GB IN ('G009_10','G009_20')
  3563. UNION ALL
  3564. SELECT SITE_CD
  3565. , CATE_GB
  3566. , 'G009_10' AS FORMAL_GB
  3567. , BRAND_GROUP_NO
  3568. , CATE1_NO AS CATE_NO
  3569. , FILTER_CD
  3570. FROM TAB_FILTER
  3571. WHERE CATE1_NO IS NOT NULL
  3572. AND FORMAL_GB IN ('G009_10','G009_20')
  3573. UNION ALL
  3574. SELECT SITE_CD
  3575. , CATE_GB
  3576. , FORMAL_GB
  3577. , BRAND_GROUP_NO
  3578. , CATE5_NO AS CATE_NO
  3579. , FILTER_CD
  3580. FROM TAB_FILTER
  3581. WHERE CATE5_NO IS NOT NULL
  3582. AND FORMAL_GB = 'G009_20'
  3583. UNION ALL
  3584. SELECT SITE_CD
  3585. , CATE_GB
  3586. , FORMAL_GB
  3587. , BRAND_GROUP_NO
  3588. , CATE4_NO AS CATE_NO
  3589. , FILTER_CD
  3590. FROM TAB_FILTER
  3591. WHERE CATE4_NO IS NOT NULL
  3592. AND FORMAL_GB = 'G009_20'
  3593. UNION ALL
  3594. SELECT SITE_CD
  3595. , CATE_GB
  3596. , FORMAL_GB
  3597. , BRAND_GROUP_NO
  3598. , CATE3_NO AS CATE_NO
  3599. , FILTER_CD
  3600. FROM TAB_FILTER
  3601. WHERE CATE3_NO IS NOT NULL
  3602. AND FORMAL_GB = 'G009_20'
  3603. UNION ALL
  3604. SELECT SITE_CD
  3605. , CATE_GB
  3606. , FORMAL_GB
  3607. , BRAND_GROUP_NO
  3608. , CATE2_NO AS CATE_NO
  3609. , FILTER_CD
  3610. FROM TAB_FILTER
  3611. WHERE CATE2_NO IS NOT NULL
  3612. AND FORMAL_GB = 'G009_20'
  3613. UNION ALL
  3614. SELECT SITE_CD
  3615. , CATE_GB
  3616. , FORMAL_GB
  3617. , BRAND_GROUP_NO
  3618. , CATE1_NO AS CATE_NO
  3619. , FILTER_CD
  3620. FROM TAB_FILTER
  3621. WHERE CATE1_NO IS NOT NULL
  3622. AND FORMAL_GB = 'G009_20'
  3623. ) Z
  3624. WHERE CATE_NO IS NOT NULL
  3625. ) A
  3626. , TB_COMMON_CODE CC
  3627. WHERE A.FILTER_CD = CC.CD
  3628. AND CC.CD_GB = 'G072'
  3629. AND CC.USE_YN = 'Y'
  3630. ;
  3631. -- 혜택 필터 생성
  3632. INSERT INTO TB_CATE_FILTER_TMP (
  3633. SITE_CD
  3634. , CATE_GB
  3635. , FORMAL_GB
  3636. , BRAND_GROUP_NO
  3637. , CATE_NO
  3638. , FILTER_GB
  3639. , FILTER_CD
  3640. , FILTER_NM
  3641. , DISP_ORD
  3642. )
  3643. WITH TAB_FILTER AS (
  3644. SELECT C4.SITE_CD
  3645. , C4.CATE_GB
  3646. , G.FORMAL_GB
  3647. , B.BRAND_GROUP_NO
  3648. , C4.CATE1_NO
  3649. , C4.CATE2_NO
  3650. , C4.CATE3_NO
  3651. , C4.CATE4_NO
  3652. , C4.CATE5_NO
  3653. , G.GOODS_CD
  3654. , GB.BENEFIT_GB
  3655. FROM TB_CATE_4SRCH C4
  3656. , TB_CATE_GOODS CG
  3657. , TB_GOODS G
  3658. , TB_GOODS_STOCK GS
  3659. , TB_GOODS_BENEFIT GB
  3660. , TB_BRAND B
  3661. , TB_SITE_BRAND SB
  3662. WHERE C4.LEAF_CATE_NO = CG.CATE_NO
  3663. -- AND CG.BRAND_GROUP_NO = 0
  3664. AND CG.GOODS_CD = G.GOODS_CD
  3665. AND CG.GOODS_CD = GS.GOODS_CD
  3666. AND CG.GOODS_CD = GB.GOODS_CD
  3667. AND G.BRAND_CD = B.BRAND_CD
  3668. AND B.BRAND_CD = SB.BRAND_CD
  3669. AND C4.SITE_CD = 'G000_10'
  3670. AND C4.CATE_GB = 'G032_101'
  3671. AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
  3672. AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
  3673. AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
  3674. AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
  3675. AND GS.STOCK_QTY > 0 /*재고있는상품*/
  3676. AND B.USE_YN = 'Y' /*사용하는 브랜드*/
  3677. AND SB.SITE_CD = 'G000_10'
  3678. AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
  3679. )
  3680. SELECT SITE_CD
  3681. , CATE_GB
  3682. , FORMAL_GB
  3683. , BRAND_GROUP_NO
  3684. , CATE_NO
  3685. , 'BENEFIT' AS FILTER_GB
  3686. , FILTER_CD
  3687. , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
  3688. WHEN FILTER_CD = '20' THEN '무료배송'
  3689. WHEN FILTER_CD = '30' THEN '사은품'
  3690. WHEN FILTER_CD = '40' THEN '신상'
  3691. WHEN FILTER_CD = '50' THEN '총알배송'
  3692. END AS FILTER_NM
  3693. , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
  3694. ORDER BY FILTER_CD
  3695. ) AS DISP_ORD
  3696. FROM (
  3697. SELECT DISTINCT
  3698. SITE_CD
  3699. , CATE_GB
  3700. , 'G009_10' AS FORMAL_GB
  3701. , BRAND_GROUP_NO
  3702. , CATE5_NO AS CATE_NO
  3703. , BENEFIT_GB AS FILTER_CD
  3704. FROM TAB_FILTER
  3705. WHERE CATE5_NO IS NOT NULL
  3706. AND FORMAL_GB IN ('G009_10','G009_20')
  3707. UNION ALL
  3708. SELECT DISTINCT
  3709. SITE_CD
  3710. , CATE_GB
  3711. , 'G009_10' AS FORMAL_GB
  3712. , BRAND_GROUP_NO
  3713. , CATE4_NO AS CATE_NO
  3714. , BENEFIT_GB AS FILTER_CD
  3715. FROM TAB_FILTER
  3716. WHERE CATE4_NO IS NOT NULL
  3717. AND FORMAL_GB IN ('G009_10','G009_20')
  3718. UNION ALL
  3719. SELECT DISTINCT
  3720. SITE_CD
  3721. , CATE_GB
  3722. , 'G009_10' AS FORMAL_GB
  3723. , BRAND_GROUP_NO
  3724. , CATE3_NO AS CATE_NO
  3725. , BENEFIT_GB AS FILTER_CD
  3726. FROM TAB_FILTER
  3727. WHERE CATE3_NO IS NOT NULL
  3728. AND FORMAL_GB IN ('G009_10','G009_20')
  3729. UNION ALL
  3730. SELECT DISTINCT
  3731. SITE_CD
  3732. , CATE_GB
  3733. , 'G009_10' AS FORMAL_GB
  3734. , BRAND_GROUP_NO
  3735. , CATE2_NO AS CATE_NO
  3736. , BENEFIT_GB AS FILTER_CD
  3737. FROM TAB_FILTER
  3738. WHERE CATE2_NO IS NOT NULL
  3739. AND FORMAL_GB IN ('G009_10','G009_20')
  3740. UNION ALL
  3741. SELECT DISTINCT
  3742. SITE_CD
  3743. , CATE_GB
  3744. , 'G009_10' AS FORMAL_GB
  3745. , BRAND_GROUP_NO
  3746. , CATE1_NO AS CATE_NO
  3747. , BENEFIT_GB AS FILTER_CD
  3748. FROM TAB_FILTER
  3749. WHERE CATE1_NO IS NOT NULL
  3750. AND FORMAL_GB IN ('G009_10','G009_20')
  3751. UNION ALL
  3752. SELECT DISTINCT
  3753. SITE_CD
  3754. , CATE_GB
  3755. , FORMAL_GB
  3756. , BRAND_GROUP_NO
  3757. , CATE5_NO AS CATE_NO
  3758. , BENEFIT_GB AS FILTER_CD
  3759. FROM TAB_FILTER
  3760. WHERE CATE5_NO IS NOT NULL
  3761. AND FORMAL_GB = 'G009_20'
  3762. UNION ALL
  3763. SELECT DISTINCT
  3764. SITE_CD
  3765. , CATE_GB
  3766. , FORMAL_GB
  3767. , BRAND_GROUP_NO
  3768. , CATE4_NO AS CATE_NO
  3769. , BENEFIT_GB AS FILTER_CD
  3770. FROM TAB_FILTER
  3771. WHERE CATE4_NO IS NOT NULL
  3772. AND FORMAL_GB = 'G009_20'
  3773. UNION ALL
  3774. SELECT DISTINCT
  3775. SITE_CD
  3776. , CATE_GB
  3777. , FORMAL_GB
  3778. , BRAND_GROUP_NO
  3779. , CATE3_NO AS CATE_NO
  3780. , BENEFIT_GB AS FILTER_CD
  3781. FROM TAB_FILTER
  3782. WHERE CATE3_NO IS NOT NULL
  3783. AND FORMAL_GB = 'G009_20'
  3784. UNION ALL
  3785. SELECT DISTINCT
  3786. SITE_CD
  3787. , CATE_GB
  3788. , FORMAL_GB
  3789. , BRAND_GROUP_NO
  3790. , CATE2_NO AS CATE_NO
  3791. , BENEFIT_GB AS FILTER_CD
  3792. FROM TAB_FILTER
  3793. WHERE CATE2_NO IS NOT NULL
  3794. AND FORMAL_GB = 'G009_20'
  3795. UNION ALL
  3796. SELECT DISTINCT
  3797. SITE_CD
  3798. , CATE_GB
  3799. , FORMAL_GB
  3800. , BRAND_GROUP_NO
  3801. , CATE1_NO AS CATE_NO
  3802. , BENEFIT_GB AS FILTER_CD
  3803. FROM TAB_FILTER
  3804. WHERE CATE1_NO IS NOT NULL
  3805. AND FORMAL_GB = 'G009_20'
  3806. ) Z
  3807. ;
  3808. TRUNCATE TABLE TB_CATE_FILTER;
  3809. INSERT INTO TB_CATE_FILTER
  3810. SELECT DISTINCT SITE_CD
  3811. , CATE_GB
  3812. , FORMAL_GB
  3813. , BRAND_GROUP_NO
  3814. , CATE_NO
  3815. , FILTER_GB
  3816. , FILTER_CD
  3817. , FILTER_NM
  3818. , DISP_ORD
  3819. , 12 AS REG_NO
  3820. , NOW() AS REG_DT
  3821. FROM TB_CATE_FILTER_TMP
  3822. ;
  3823. CREATE TABLE IF NOT EXISTS TB_CATE_FILTER2 LIKE TB_CATE_FILTER;
  3824. DROP TABLE TB_CATE_FILTER2;