T31-Day01

本文讲述了作者参加31天孤尽代码效能提升训练营的经历,训练营采用实战教学,强调代码规范和团队协作,通过完成T31火车购票项目提升学员的Java技术栈、思维能力和协作能力。作者设定了技术、规范和协作能力的提升目标,期望在训练营中实现个人成长。

一、起缘

第一次听到孤尽这个名字是源于当时第一版阿里开发手册问世,正好项目组需要制定代码规范于是"借鉴"了这版规约的绝大部分内容到自己项目组,后来那本衍生书出版我便第一时间下了单。这套阿里开发手册也在不断的优化改版,目前最新版好像叫嵩山版。第二次来自于某一年看阿里云栖大会发现有脱口秀表演,中间印象比较深的是一个人提拉着一打书上场讲开发规范的故事,我才发现这就是开发手册的作者孤尽老师啊,记得最后他还拿了talk king。前几天接到训练营面试电话我还开玩笑说以为是脱口秀培训没想到是教写代码的[狗头]。

二、开营

"【31天孤尽代码效能提升训练营】带你破茧成蝶,带你还原阿里巴巴开发流程,让你实战中深度掌握大厂开发规范流程及技术经验”,随着孤尽老师在开班典礼上自信且详细的讲解了这个训练营的教学方式和对学员的要求后,我居然有点相信了最初的这个标题广告。以下是我觉得训练营异与其他传统培训的地方

T31训练营:31天完成一个T31火车购票项目 (同时内院31人)

分值占比:听课41分 互评31分 分享14分 笔记14分

淘汰机制:听课未完成一次扣7分 2次淘汰 ,笔记分享未完成一次扣7分 2次淘汰

课程模式

  1. 授人以渔,教学练一体化启发式来提高学员综合能力,以战促练。
  2. 专项训练,结队完成并交付项目,开发过程对代码结队互查保证代码规范
  3. 四大篇幅:系统顶层设计,系统规范落地,系统效能提升,系统审计健壮性突破

对学员提升

  1. 学习能力:内化摄入的知识,能够表达
  2. 思维能力:提升 结构、逆向、抽象思维
  3. 专业能力:Java技术栈

三、个人目标

1- 技术
  1. 针对java技术栈基础的巩固

  2. 熟练从0-1整个项目架构的分析、设计、搭建

2- 规范
  1. 不熟悉阿里java开发手册,还要将其应用到日常开发中养成良好习惯。
3- 协作能力
  1. 养成记录并分享输出的习惯,从现在每日一总结到将来保证将来一周能有一篇相对高质量产出

  2. 在小组协作中完成项目的需求分析->架构设计->业务开发->代码review->发布部署

最后希望自己在这次训练营中能完成孤尽老师所讲的“起势”,加油!
WITH t_analysis_date AS ( SELECT GENERATE_SERIES::DATE AS analysis_date FROM GENERATE_SERIES('2025-08-13'::DATE, '2025-08-28'::DATE, '1 days') ), v_para_info AS ( SELECT '351106' AS item_code,'f7819475-5666-42c2-afbe-c13c4de01d54' AS system_item_code UNION ALL SELECT '351105' AS item_code,'e9218279-bd2f-4150-bd83-72c3b9d4fba3' AS system_item_code UNION ALL SELECT '351104' AS item_code,'c4dc07f3-f92e-4407-abfb-fc552df0f228' AS system_item_code UNION ALL SELECT '351099' AS item_code,'9cd50acd-dab1-4864-a2d7-bd1f15e55800' AS system_item_code UNION ALL SELECT '351096' AS item_code,'6379cc11-b3a0-4969-a973-460f448b9cf6' AS system_item_code UNION ALL SELECT '351090' AS item_code,'e3a51cb1-6910-4157-af9d-ed4ff37abbbd' AS system_item_code UNION ALL SELECT '351087' AS item_code,'903503fc-a8a0-4318-b64a-90373aed69f9' AS system_item_code UNION ALL SELECT '351086' AS item_code,'50e0a51d-b18f-43a7-b42f-411ec7fa4af1' AS system_item_code UNION ALL SELECT '350802' AS item_code,'2c787233-4ff0-4b81-8410-1be8f05ff15c' AS system_item_code UNION ALL SELECT '350709' AS item_code,'3d73967e-721f-40e1-96e5-4f9db9bcecd0' AS system_item_code UNION ALL SELECT '350667' AS item_code,'233efb2d-6db9-4d52-baa8-5706e1dedfef' AS system_item_code UNION ALL SELECT '350578' AS item_code,'15f4a6b2-ce09-4630-8279-7f378d2e9e0d' AS system_item_code UNION ALL SELECT '350568' AS item_code,'12a80c5e-7ccc-49bb-9647-403328ab5d21' AS system_item_code UNION ALL SELECT '351048' AS item_code,'d9330990-213c-4324-8f7c-7b45a5635feb' AS system_item_code UNION ALL SELECT '351039' AS item_code,'adc3da0a-62c2-4d10-ae9c-51e1bb9b07aa' AS system_item_code UNION ALL SELECT '351036' AS item_code,'8c10a67b-cd4b-4b01-8355-b720debe0cff' AS system_item_code UNION ALL SELECT '351033' AS item_code,'7b2b64c5-483a-45f5-a1fa-fe21a84f948d' AS system_item_code UNION ALL SELECT '350689' AS item_code,'1d21d166-60cf-4370-83d4-d53246f512fe' AS system_item_code UNION ALL SELECT '350375' AS item_code,'a280b2f5-3395-48c8-9c4a-8008c0b6f716' AS system_item_code UNION ALL SELECT '350485' AS item_code,'53476aac-07bf-4829-b549-d5d56bbaac18' AS system_item_code UNION ALL SELECT '350486' AS item_code,'a0896540-fdff-42aa-89bc-029a4d18f7a6' AS system_item_code ), t_item_inf AS ( SELECT T21.item_code AS item_code ,T21.system_item_code AS system_item_code ,T22.analysis_date AS analysis_date FROM v_para_info T21 CROSS JOIN t_analysis_date T22 GROUP BY T21.item_code, T21.system_item_code, T22.analysis_date ) SELECT T100.item_code ,T100.system_item_code ,T100.analysis_date ,T100.delivery_quantity ,T100.delivery_amount ,T100.sales_quantity ,T100.sales_amount ,T100.gross_amount ,T100.disposal_quantity ,T100.disposal_amount ,T100.delivery_count ,T100.stockout_count ,T100.duty_free_sales_quantity ,T100.duty_free_sales_amount ,T100.ethical_sales_quantity ,T100.ethical_sales_amount ,T100.forsake_sales_quantity ,T100.forsake_sales_amount ,T102.stockout_time FROM ( SELECT T01.item_code AS item_code ,T01.system_item_code AS system_item_code ,T01.analysis_date AS analysis_date ,SUM(COALESCE(T02.delivery_quantity, 0)) AS delivery_quantity ,SUM(COALESCE(T02.delivery_amount, 0)) AS delivery_amount ,SUM(COALESCE(T02.sales_quantity, 0)) AS sales_quantity ,SUM(COALESCE(T02.sales_amount, 0)) AS sales_amount ,SUM(COALESCE(T02.gross_amount, 0)) AS gross_amount ,SUM(COALESCE(T02.disposal_quantity, 0)) AS disposal_quantity ,SUM(COALESCE(T02.disposal_amount, 0)) AS disposal_amount ,SUM(COALESCE(T02.delivery_count, 0)) AS delivery_count ,SUM(COALESCE(T02.stockout_count, 0)) AS stockout_count ,SUM(COALESCE(T03.sales_quantity, 0)) AS duty_free_sales_quantity ,SUM(COALESCE(T03.sales_amount, 0)) AS duty_free_sales_amount ,0 AS ethical_sales_quantity ,0 AS ethical_sales_amount ,SUM(COALESCE(T06.closeout_sales_quantity, 0)) AS forsake_sales_quantity ,SUM(COALESCE(T06.closeout_sales_amount, 0)) AS forsake_sales_amount FROM t_item_inf T01 LEFT JOIN -- 日別単品集計 (WITH V_DATE_LIST AS ( SELECT generate_series AS analysis_date FROM generate_series( '2025-08-13' ::date , '2025-08-28' ::date , '1 day' ) ) , --対象商品マスタ V_TS_ITEM_MS AS ( SELECT T01.original_store_code --オリジナル店舗コード , T01.item_code --商品コード , T01.system_item_code --システム用商品コード , T01.information_category_code --情報分類コード , T01.unpacked_conversion_excluded_flag --バラ換算対象外フラグ , TRIM(T01.unpacked_id) AS unpacked_id --バラ商品コード , T01.system_unpacked_id --システム用バラ商品コード , T01.unpacked_conversion_quantity --バラ換算数 , T01.cover_timezone_aggregate_flag --カバー時間帯集計フラグ FROM m_ia_item_by_store_all T01 --情報分析商品マスタ(統合) INNER JOIN m_ia_target_item T02 --情報分析対象商品マスタ ON T02.version = 'v_m_ia_target_item' --情報分析対象商品マスタ の最新バージョンTODO AND T02.original_store_code = '343415' --オリジナル店舗コード AND T02.original_store_code = T01.original_store_code AND T02.system_item_code = T01.system_item_code --システム用商品コード WHERE T01.version = 'v_m_ia_item_by_store_all' --情報分析商品マスタ(統合)の最新バージョンTODO AND T01.original_store_code = '343415' --引数1(オリジナル店舗コード) AND CASE WHEN ARRAY_LENGTH( ARRAY['12a80c5e-7ccc-49bb-9647-403328ab5d21', '15f4a6b2-ce09-4630-8279-7f378d2e9e0d', '1d21d166-60cf-4370-83d4-d53246f512fe', '233efb2d-6db9-4d52-baa8-5706e1dedfef', '2c787233-4ff0-4b81-8410-1be8f05ff15c', '3d73967e-721f-40e1-96e5-4f9db9bcecd0', '50e0a51d-b18f-43a7-b42f-411ec7fa4af1', '53476aac-07bf-4829-b549-d5d56bbaac18', '6379cc11-b3a0-4969-a973-460f448b9cf6', '7b2b64c5-483a-45f5-a1fa-fe21a84f948d', '8c10a67b-cd4b-4b01-8355-b720debe0cff', '903503fc-a8a0-4318-b64a-90373aed69f9', '9cd50acd-dab1-4864-a2d7-bd1f15e55800', 'a0896540-fdff-42aa-89bc-029a4d18f7a6', 'a280b2f5-3395-48c8-9c4a-8008c0b6f716', 'adc3da0a-62c2-4d10-ae9c-51e1bb9b07aa', 'c4dc07f3-f92e-4407-abfb-fc552df0f228', 'd9330990-213c-4324-8f7c-7b45a5635feb', 'e3a51cb1-6910-4157-af9d-ed4ff37abbbd', 'e9218279-bd2f-4150-bd83-72c3b9d4fba3', 'f7819475-5666-42c2-afbe-c13c4de01d54'], , 1 ) > 0 THEN T01.system_item_code = any ( ARRAY ARRAY['12a80c5e-7ccc-49bb-9647-403328ab5d21', '15f4a6b2-ce09-4630-8279-7f378d2e9e0d', '1d21d166-60cf-4370-83d4-d53246f512fe', '233efb2d-6db9-4d52-baa8-5706e1dedfef', '2c787233-4ff0-4b81-8410-1be8f05ff15c', '3d73967e-721f-40e1-96e5-4f9db9bcecd0', '50e0a51d-b18f-43a7-b42f-411ec7fa4af1', '53476aac-07bf-4829-b549-d5d56bbaac18', '6379cc11-b3a0-4969-a973-460f448b9cf6', '7b2b64c5-483a-45f5-a1fa-fe21a84f948d', '8c10a67b-cd4b-4b01-8355-b720debe0cff', '903503fc-a8a0-4318-b64a-90373aed69f9', '9cd50acd-dab1-4864-a2d7-bd1f15e55800', 'a0896540-fdff-42aa-89bc-029a4d18f7a6', 'a280b2f5-3395-48c8-9c4a-8008c0b6f716', 'adc3da0a-62c2-4d10-ae9c-51e1bb9b07aa', 'c4dc07f3-f92e-4407-abfb-fc552df0f228', 'd9330990-213c-4324-8f7c-7b45a5635feb', 'e3a51cb1-6910-4157-af9d-ed4ff37abbbd', 'e9218279-bd2f-4150-bd83-72c3b9d4fba3', 'f7819475-5666-42c2-afbe-c13c4de01d54'], ) ELSE 1 = 1 END ) , --対象商品日別マスタ V_TS_ITEM_BY_DATE_MS AS ( SELECT T10.original_store_code --オリジナル店舗コード , T10.item_code --商品コード , T10.system_item_code --システム用商品コード , T10.information_category_code --情報分類コード , T10.unpacked_conversion_excluded_flag --バラ換算対象外フラグ , T10.unpacked_id --バラ商品コード , T10.system_unpacked_id --システム用バラ商品コード , T10.unpacked_conversion_quantity --バラ換算数 , T10.cover_timezone_aggregate_flag --カバー時間帯集計フラグ , T11.analysis_date --分析年月日 FROM V_TS_ITEM_MS T10 --対象商品マスタ CROSS JOIN V_DATE_LIST T11 --期間内日付リスト ) , --デイリー品日別便別欠品情報 V_DL_IVTY_BY_SHIPMENT_JH AS ( SELECT T21.original_store_code --オリジナル店舗コード , T21.cover_timezone_date --カバー時間帯年月日 , T21.system_item_code --システム用商品コード , '1' as shipment --便 , 1 as stockout_count_shipment --便別欠品回数 FROM V_TS_ITEM_MS T20 INNER JOIN t_item_inventoryout_by_date_cover_timezone T21 ON T21.original_store_code = '343415' AND T21.cover_timezone_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T21.peak_flag_1 in ('1', '2') AND T21.original_store_code = T20.original_store_code AND T21.system_item_code = T20.system_item_code AND T20.cover_timezone_aggregate_flag = '1' UNION ALL SELECT T21.original_store_code --オリジナル店舗コード , T21.cover_timezone_date --カバー時間帯年月日 , T21.system_item_code --システム用商品コード , '2' as shipment --便 , 1 as stockout_count_shipment --便別欠品回数 FROM V_TS_ITEM_MS T20 INNER JOIN t_item_inventoryout_by_date_cover_timezone T21 ON T21.original_store_code = '343415' AND T21.cover_timezone_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T21.peak_flag_2 in ('1', '2') AND T21.original_store_code = T20.original_store_code AND T21.system_item_code = T20.system_item_code AND T20.cover_timezone_aggregate_flag = '1' UNION ALL SELECT T21.original_store_code --オリジナル店舗コード , T21.cover_timezone_date --カバー時間帯年月日 , T21.system_item_code --システム用商品コード , '3' as shipment --便 , 1 as stockout_count_shipment --便別欠品回数 FROM V_TS_ITEM_MS T20 INNER JOIN t_item_inventoryout_by_date_cover_timezone T21 ON T21.original_store_code = '343415' AND T21.cover_timezone_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T21.peak_flag_3 in ('1', '2') AND T21.original_store_code = T20.original_store_code AND T21.system_item_code = T20.system_item_code AND T20.cover_timezone_aggregate_flag = '1' ) SELECT T100.analysis_date ::DATE AS analysis_date --分析年月日 , T100.item_code ::varchar AS item_code --商品コード , T100.system_item_code ::varchar AS system_item_code --システム用商品コード , T100.cover_timezone_aggregate_flag ::varchar AS cover_timezone_aggregate_flag --カバー時間帯集計フラグ , T100.information_category_code ::varchar AS information_category_code --情報分類コード , T100.delivery_quantity ::integer AS delivery_quantity --納品数 , T100.delivery_amount ::integer AS delivery_amount --納品金額 , T100.sales_quantity ::integer AS sales_quantity --販売数 , T100.sales_amount ::integer AS sales_amount --販売金額 , T100.gross_amount ::integer AS gross_amount --荒利金額 , T100.disposal_quantity ::integer AS disposal_quantity --廃棄数 , T100.disposal_amount ::integer AS disposal_amount --廃棄金額 , T100.delivery_count ::integer AS delivery_count --納品回数 , T100.stockout_count ::integer AS stockout_count --欠品回数 , 0 ::integer AS stockout_time --欠品時間 FROM ( --納品販売廃棄実績集計 SELECT TA1.original_store_code --オリジナル店舗コード , TA1.analysis_date --分析年月日 , MAX(TA1.item_code) AS item_code --商品コード , TA1.system_item_code --システム用商品コード , MAX(TA1.cover_timezone_aggregate_flag) AS cover_timezone_aggregate_flag --カバー時間帯集計フラグ , MAX(TA1.information_category_code) AS information_category_code --情報分類コード , SUM(TA1.delivery_quantity) AS delivery_quantity --納品数 , SUM(TA1.delivery_amount) AS delivery_amount --納品金額 , SUM(TA1.sales_quantity) AS sales_quantity --販売数 , SUM(TA1.sales_amount) AS sales_amount --販売金額 , SUM(TA1.gross_amount) AS gross_amount --荒利金額 , SUM(TA1.disposal_quantity) AS disposal_quantity --廃棄数 , SUM(TA1.disposal_amount) AS disposal_amount --廃棄金額 , SUM(TA1.delivery_count) AS delivery_count --納品回数 , SUM(TA1.stockout_count) AS stockout_count --欠品回数 , 0 AS stockout_time --欠品時間 FROM ( -- 販売数、販売金額、荒利金額 SELECT T11.original_store_code --オリジナル店舗コード , S12.analysis_date --分析年月日 , T11.system_item_code --システム用商品コード , T11.information_category_code --情報分類コード , T11.item_code --商品コード , T11.cover_timezone_aggregate_flag --カバー時間帯集計フラグ , CASE WHEN T11.unpacked_id <> '' AND T11.unpacked_conversion_excluded_flag = '1' THEN COALESCE(T13.sales_quantity, 0) * T11.unpacked_conversion_quantity WHEN T11.unpacked_id <> '' AND T11.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T14.sales_quantity, 0) ELSE COALESCE(T13.sales_quantity, 0) END AS sales_quantity --販売数 , CASE WHEN T11.unpacked_id <> '' AND T11.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T14.sales_amount, 0) ELSE COALESCE(T13.sales_amount, 0) END AS sales_amount --販売金額 , CASE WHEN T11.unpacked_id <> '' AND T11.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T14.gross_amount, 0) ELSE COALESCE(T13.gross_amount, 0) END AS gross_amount --荒利金額 , 0 AS delivery_quantity --納品数 , 0 AS delivery_amount --納品金額 , 0 AS delivery_count --納品回数 , 0 AS disposal_quantity --廃棄数 , 0 AS disposal_amount --廃棄金額 , 0 AS stockout_count --欠品回数 FROM V_TS_ITEM_MS T11 --商品マスタ CROSS JOIN V_DATE_LIST S12 --期間内日付リスト LEFT JOIN t_item_sales_by_date T13 --日別単品販売実績 ON T13.original_store_code = '343415' AND T13.calendar_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T13.system_item_code = T11.system_item_code AND T13.calendar_date = S12.analysis_date LEFT JOIN t_unpacked_conversion_sales_by_date T14 --日別バラ換販売実績 ON T14.original_store_code = '343415' AND T14.calendar_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T14.system_unpacked_id = T11.system_unpacked_id AND T14.calendar_date = S12.analysis_date UNION ALL --納品数、納品金額、納品回数、欠品回数 SELECT T21.original_store_code --オリジナル店舗コード , S22.analysis_date --分析年月日 , T21.system_item_code --システム用商品コード , T21.information_category_code --情報分類コード , T21.item_code --商品コード , T21.cover_timezone_aggregate_flag --カバー時間帯集計フラグ , 0 AS sales_quantity --販売数 , 0 AS sales_amount --販売金額 , 0 AS gross_amount --荒利金額 , CASE WHEN T21.unpacked_id <> '' AND T21.unpacked_conversion_excluded_flag = '1' THEN COALESCE(T23.delivery_quantity, 0) * T21.unpacked_conversion_quantity WHEN T21.unpacked_id <> '' AND T21.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T24.delivery_quantity, 0) ELSE COALESCE(T23.delivery_quantity, 0) END AS delivery_quantity --納品数 , CASE WHEN T21.unpacked_id <> '' AND T21.unpacked_conversion_excluded_flag = '1' THEN COALESCE(T23.delivery_amount, 0) WHEN T21.unpacked_id <> '' AND T21.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T24.delivery_amount, 0) ELSE COALESCE(T23.delivery_amount, 0) END AS delivery_amount --納品金額 , CASE WHEN T21.unpacked_id <> '' AND T21.unpacked_conversion_excluded_flag <> '1' AND T24.order_delivery_date IS NOT NULL THEN 1 WHEN T23.order_delivery_date IS NOT NULL AND T23.delivery_quantity > 0 THEN 1 ELSE 0 END AS delivery_count --納品回数 , 0 AS disposal_quantity --廃棄数 , 0 AS disposal_amount --廃棄金額 , CASE WHEN T23.delivery_quantity > 0 AND T25.stockout_count_shipment > 0 THEN T25.stockout_count_shipment ELSE 0 END AS stockout_count --欠品回数 FROM V_TS_ITEM_MS T21 --商品マスタ CROSS JOIN V_DATE_LIST S22 --期間内日付リスト LEFT JOIN t_item_delivery_by_date_shipment T23 --日別便別単品納品実績 ON T23.original_store_code = '343415' --オリジナル店舗コード AND T23.order_delivery_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T23.system_item_code = T21.system_item_code --システム用商品コード AND T23.order_delivery_date = S22.analysis_date --注納日付 LEFT JOIN V_DL_IVTY_BY_SHIPMENT_JH T25 --デイリー品日別便別欠品情報 ON T25.original_store_code = T23.original_store_code AND T25.system_item_code = T23.system_item_code --システム用商品コード AND T25.cover_timezone_date = T23.order_delivery_date --注納日付 AND T25.shipment = T23.shipment --便 LEFT JOIN t_unpacked_conversion_delivery_by_date T24 --日別バラ換納品実績 ON T24.original_store_code = '343415' --オリジナル店舗コード AND T24.order_delivery_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T24.system_unpacked_id = T21.system_unpacked_id --システム用バラ商品コード AND T24.order_delivery_date = S22.analysis_date --注納日付 UNION ALL --廃棄数、廃棄金額 SELECT T31.original_store_code --オリジナル店舗コード , S32.analysis_date --分析年月日 , T31.system_item_code --システム用商品コード , T31.information_category_code --情報分類コード , T31.item_code --商品コード , T31.cover_timezone_aggregate_flag --カバー時間帯集計フラグ , 0 AS sales_quantity --販売数 , 0 AS sales_amount --販売金額 , 0 AS gross_amount --荒利金額 , 0 AS delivery_quantity --納品数 , 0 AS delivery_amount --納品金額 , 0 AS delivery_count --納品回数 , CASE WHEN T31.unpacked_id <> '' AND T31.unpacked_conversion_excluded_flag = '1' THEN COALESCE(T33.disposal_quantity, 0) * T31.unpacked_conversion_quantity WHEN T31.unpacked_id <> '' AND T31.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T34.disposal_quantity, 0) ELSE COALESCE(T33.disposal_quantity, 0) END AS disposal_quantity --廃棄数 , CASE WHEN T31.unpacked_id <> '' AND T31.unpacked_conversion_excluded_flag <> '1' THEN COALESCE(T34.disposal_amount, 0) ELSE COALESCE(T33.disposal_amount, 0) END AS disposal_amount --廃棄金額 , 0 AS stockout_count --欠品回数 FROM V_TS_ITEM_MS T31 --商品マスタ CROSS JOIN V_DATE_LIST S32 --期間内日付リスト LEFT JOIN t_item_disposal_by_date_shipment T33 --日別便別単品廃棄実績 ON T33.original_store_code = '343415' --オリジナル店舗コード AND T33.order_delivery_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T33.system_item_code = T31.system_item_code --システム用商品コード AND T33.order_delivery_date = S32.analysis_date --注納日付 LEFT JOIN t_unpacked_conversion_disposal_by_date T34 --日別バラ換廃棄実績 ON T34.original_store_code = '343415' --オリジナル店舗コード AND T34.order_delivery_date BETWEEN '2025-08-13' ::date AND '2025-08-28' ::date AND T34.system_unpacked_id = T31.system_unpacked_id --システム用バラ商品コード AND T34.order_delivery_date = S32.analysis_date --注納日付 ) AS TA1 GROUP BY TA1.original_store_code , TA1.analysis_date , TA1.system_item_code ) T100 --日別単品納品販売廃棄実績集計 ) T02 ON T02.system_item_code = T01.system_item_code AND T02.analysis_date = T01.analysis_date LEFT JOIN -- 免税日別単品集計 func_duty_free_daily_item_aggregate ('343415', NULL, ARRAY['12a80c5e-7ccc-49bb-9647-403328ab5d21', '15f4a6b2-ce09-4630-8279-7f378d2e9e0d', '1d21d166-60cf-4370-83d4-d53246f512fe', '233efb2d-6db9-4d52-baa8-5706e1dedfef', '2c787233-4ff0-4b81-8410-1be8f05ff15c', '3d73967e-721f-40e1-96e5-4f9db9bcecd0', '50e0a51d-b18f-43a7-b42f-411ec7fa4af1', '53476aac-07bf-4829-b549-d5d56bbaac18', '6379cc11-b3a0-4969-a973-460f448b9cf6', '7b2b64c5-483a-45f5-a1fa-fe21a84f948d', '8c10a67b-cd4b-4b01-8355-b720debe0cff', '903503fc-a8a0-4318-b64a-90373aed69f9', '9cd50acd-dab1-4864-a2d7-bd1f15e55800', 'a0896540-fdff-42aa-89bc-029a4d18f7a6', 'a280b2f5-3395-48c8-9c4a-8008c0b6f716', 'adc3da0a-62c2-4d10-ae9c-51e1bb9b07aa', 'c4dc07f3-f92e-4407-abfb-fc552df0f228', 'd9330990-213c-4324-8f7c-7b45a5635feb', 'e3a51cb1-6910-4157-af9d-ed4ff37abbbd', 'e9218279-bd2f-4150-bd83-72c3b9d4fba3', 'f7819475-5666-42c2-afbe-c13c4de01d54'], '2025-08-13', '2025-08-28', '2025-09-10') T03 ON T03.system_item_code = T01.system_item_code AND T03.analysis_date = T01.analysis_date LEFT JOIN -- 見切り日別単品集計 func_tag_closeout_daily_item_aggregate ('343415', NULL, ARRAY['12a80c5e-7ccc-49bb-9647-403328ab5d21', '15f4a6b2-ce09-4630-8279-7f378d2e9e0d', '1d21d166-60cf-4370-83d4-d53246f512fe', '233efb2d-6db9-4d52-baa8-5706e1dedfef', '2c787233-4ff0-4b81-8410-1be8f05ff15c', '3d73967e-721f-40e1-96e5-4f9db9bcecd0', '50e0a51d-b18f-43a7-b42f-411ec7fa4af1', '53476aac-07bf-4829-b549-d5d56bbaac18', '6379cc11-b3a0-4969-a973-460f448b9cf6', '7b2b64c5-483a-45f5-a1fa-fe21a84f948d', '8c10a67b-cd4b-4b01-8355-b720debe0cff', '903503fc-a8a0-4318-b64a-90373aed69f9', '9cd50acd-dab1-4864-a2d7-bd1f15e55800', 'a0896540-fdff-42aa-89bc-029a4d18f7a6', 'a280b2f5-3395-48c8-9c4a-8008c0b6f716', 'adc3da0a-62c2-4d10-ae9c-51e1bb9b07aa', 'c4dc07f3-f92e-4407-abfb-fc552df0f228', 'd9330990-213c-4324-8f7c-7b45a5635feb', 'e3a51cb1-6910-4157-af9d-ed4ff37abbbd', 'e9218279-bd2f-4150-bd83-72c3b9d4fba3', 'f7819475-5666-42c2-afbe-c13c4de01d54'], '2025-08-13', '2025-08-28', '2025-09-10') T06 ON T06.system_item_code = T01.system_item_code AND T06.analysis_date = T01.analysis_date GROUP BY T01.item_code ,T01.system_item_code ,T01.analysis_date ) T100 LEFT JOIN m_ia_item_by_store_all T101 ON T101.version = '0910_001' AND T101.original_store_code = '343415' AND T101.system_item_code = T100.system_item_code LEFT JOIN t_item_inventoryout_by_date T102 ON T102.original_store_code = '343415' AND T102.calendar_day_date = T100.analysis_date AND T102.system_item_code = CASE WHEN T101.unpack_target_flg = '0' THEN T101.system_item_code ELSE T101.system_unpacked_id END ORDER BY T100.item_code ASC ,T100.system_item_code ASC ,T100.analysis_date 逗号处报错,找一下
09-13
WITH v_para_info AS ( select UNNEST ( ARRAY['001'] ) AS para_value ) , v_item_tag_info AS ( SELECT SPLIT_PART(TS3.para_value, ',', 1) AS item_tag_code , SPLIT_PART(TS3.para_value, ',', 2) AS employee_number FROM v_para_info TS3 ), v_tag_info AS ( SELECT T01.original_store_code , T01.item_tag_code , MAX(T01.item_tag_input_name) AS item_tag_input_name , MAX(T01.employee_number) AS item_tag_employee_number , MAX(T01.item_tag_type) AS item_tag_type , MAX(T01.item_tag_name) AS item_tag_name , MAX(T01.item_tag_usage) AS item_tag_usage , MAX(T01.alert_send_date) AS alert_send_date , MAX(T01.order_display_start_date) AS order_display_start_date , MAX(T01.order_display_end_date) AS order_display_end_date , MAX(T01.item_tag_input_datetime) AS item_tag_input_datetime , MAX(T01.item_tag_input_person) AS item_tag_input_person , MAX(T01.item_tag_input_person_type) AS item_tag_input_person_type , MAX(T01.item_tag_update_datetime) AS item_tag_update_datetime , MAX(T01.update_count) AS update_count , MAX(T01.item_tag_priority_display_flag) AS item_tag_priority_display_flag , COUNT(T02.item_code) AS item_quantity , MAX( CASE WHEN T02.alert_cleared_flag = '0' AND T01.order_display_end_date >= '20001919' THEN T02.recommendation_cancel_alert_flag ELSE '0' END ) AS recommendation_cancel_alert_flag , COALESCE(MAX(T03.new_arrival_flag), '0') AS new_arrival_flag , MAX(T01.long_term_preservation_flag) AS long_term_preservation_flag , MAX(T01.apply_flag) AS apply_flag , MAX(T01.out_of_date_alert_flag) AS out_of_date_alert_flag , MAX(T01.update_person_id) AS item_tag_update_person FROM m_item_tag T01 INNER JOIN v_item_tag_info T06 ON T01.item_tag_code = T06.item_tag_code AND T01.employee_number = T06.employee_number LEFT OUTER JOIN m_item_tagged T02 ON T02.original_store_code = '123456' AND T02.original_store_code = T01.original_store_code AND T02.item_tag_code = T01.item_tag_code AND T02.employee_number = T01.employee_number LEFT OUTER JOIN m_item_tag_details_per_person T03 ON T03.original_store_code = '123456' AND T01.original_store_code = T03.original_store_code AND T01.item_tag_code = T03.item_tag_code AND ( ( T01.item_tag_type = '04' AND T03.employee_number = T01.employee_number ) OR ( T01.item_tag_type <> '04' AND T03.employee_number = #{employeeNumber} ) ) WHERE T01.original_store_code = '123456' AND ( ( T01.item_tag_type = '04' AND T01.employee_number = '123456' ) OR ( T01.employee_number = lpad('123456', 13, '0') AND T01.item_tag_type IN ('01', '02', '03') ) ) AND T01.order_display_start_date <= '20001919' AND T01.order_display_end_date >= '20001919 AND T01.item_tag_name LIKE CONCAT('%', '001', '%') AND ( EXISTS ( SELECT 1 FROM m_item_tagged T11 WHERE T11.original_store_code = '123456' AND T11.original_store_code = T01.original_store_code AND T11.item_tag_code = T01.item_tag_code AND T11.employee_number = T01.employee_number AND T11.item_code IN ('001') ) OR EXISTS ( SELECT 1 FROM m_item_tagged T11 INNER JOIN m_ia_item_by_store_all T31 ON T31.version = #{versionItemByStoreAll} AND T31.original_store_code = #{originalStoreCode} AND T31.original_store_code = T11.original_store_code AND T31.system_item_code = T11.system_item_code AND ( ( T31.label_code_0 IN ('001') AND T31.label_code_0 <> '0000000000000' ) OR ( T31.label_code_1 IN ('001') AND T31.label_code_1 <> '0000000000000' ) OR ( T31.label_code_2 IN ('001') AND T31.label_code_2 <> '0000000000000' ) OR ( T31.label_code_3 IN ('001') AND T31.label_code_3 <> '0000000000000' ) ) WHERE T11.original_store_code = '123456' AND T11.original_store_code = T01.original_store_code AND T11.item_tag_code = T01.item_tag_code AND T11.employee_number = T01.employee_number ) ) AND EXISTS ( SELECT 1 FROM m_item_tagged T21 WHERE T21.original_store_code = '123456' AND T21.original_store_code = T01.original_store_code AND T21.item_tag_code = T01.item_tag_code AND T21.employee_number = T01.employee_number AND T21.item_code IN ('001') ) AND T01.item_tag_type IN ('001') AND ((T01.item_tag_type = '04' AND T01.item_tag_input_person IN ('001')) OR (T01.item_tag_type <![CDATA[ <> ]]> '04') ) AND ((T01.item_tag_type IN ('01', '02', '03', '04') AND COALESCE(TRIM(T01.automatic_generation_type), '') = '') OR (T01.item_tag_type = '02' AND T01.automatic_generation_type IN ('001') ) ) AND ((T01.long_term_preservation_flag = '0' AND T01.order_display_end_date >= '20001919') OR T01.long_term_preservation_flag = '1' ) AND T01.long_term_preservation_flag IN ('0', '1') AND T01.long_term_preservation_flag = '1' AND T01.long_term_preservation_flag = '0' AND T01.apply_flag IN ('0', '1') AND T01.apply_flag = '1' AND T01.apply_flag = '0' AND T01.order_display_end_date >= '20001919' AND T01.order_display_start_date <= '20001919' AND T01.item_tag_input_datetime >= '200001919' AND T01.item_tag_input_datetime < '200001919' + '1 day' :: interval AND EXISTS( SELECT 1 FROM m_ia_item_by_store_all T22 WHERE T22.version = '0001_0101' AND T22.original_store_code = '123456' AND T22.original_store_code = T02.original_store_code AND T22.cover_timezone_aggregate_flag = '1' AND T22.system_item_code = T02.system_item_code ) AND EXISTS( SELECT 1 FROM m_ia_item_by_store_all T22 WHERE T22.version = #{versionItemByStoreAll} AND T22.original_store_code = '123456' AND T22.original_store_code = T02.original_store_code AND T22.cover_timezone_aggregate_flag = '0' AND T22.system_item_code = T02.system_item_code ) GROUP BY T01.original_store_code , T01.item_tag_code ) SELECT T05.original_store_code , T05.item_tag_code , T05.item_tag_employee_number AS item_tag_employee_number , T05.item_tag_type AS item_tag_type , T05.item_tag_name AS item_tag_name , T05.item_tag_usage AS item_tag_usage , T05.alert_send_date AS alert_send_date , T05.order_display_start_date AS order_display_start_date , T05.order_display_end_date AS order_display_end_date , T05.item_tag_input_datetime AS item_tag_input_datetime , T05.item_tag_input_person AS item_tag_input_person , CASE WHEN T05.item_tag_input_person_type = '04' THEN T05.item_tag_input_name ELSE T04.display_name_1 END AS item_tag_input_person_name , T05.item_tag_input_person_type AS item_tag_input_person_type , T04.display_name_1 AS item_tag_input_person_type_name , T05.item_tag_update_datetime AS item_tag_update_datetime , T05.update_count AS update_count , T05.item_tag_priority_display_flag AS item_tag_priority_display_flag , T05.item_quantity AS item_quantity , T05.recommendation_cancel_alert_flag AS recommendation_cancel_alert_flag , COALESCE(T05.new_arrival_flag, '0') AS new_arrival_flag , T05.long_term_preservation_flag AS long_term_preservation_flag , T05.apply_flag AS apply_flag , T05.out_of_date_alert_flag AS out_of_date_alert_flag , T05.item_tag_update_person AS item_tag_update_person , CASE WHEN T05.item_tag_type = '04' AND T05.item_tag_update_person = '9999999999999' THEN T04.display_name_1 WHEN ( T05.item_tag_type IN ('02', '03') AND T05.item_tag_update_person LIKE 'SAND%' ) THEN T04.display_name_1 WHEN ( T05.item_tag_type IN ('02', '03') AND T05.item_tag_update_person = '9999999999999' ) THEN T04.display_name_3 ELSE T04.display_name_2 END AS item_tag_update_name , CASE WHEN '20001919' < T05.order_display_start_date THEN '2' WHEN '20001919' BETWEEN T05.order_display_start_date AND T05.order_display_end_date THEN '1' ELSE '3' END AS sort_key FROM v_tag_info T05 LEFT OUTER JOIN m_common_type_detail T04 ON T04.type_id = 'TG01000002' AND T04.setup_value_1 = T05.item_tag_input_person_type ORDER BY sort_key ASC , T05.new_arrival_flag DESC , T05.item_tag_priority_display_flag DESC , T05.order_display_start_date DESC , T05.item_tag_input_datetime DESC , T05.item_tag_type ASC , T05.item_tag_code ASC 看一下哪错了
09-20
SELECT T01.setup_value_2 AS screen_mode ,T01.setup_value_1 AS screen_id ,T01.display_name_1 AS upper_limit ,T01.display_name_2 AS error_id FROM m_common_type_detail T01 WHERE T01.type_id = 'TG01000010' ORDER BY T01.display_order ASC </select> <select id="SANA0801SelectDisplayTargetList" resultType="jp.co.sej.ssc.an.sana0801.data.Sana0801DisplayTargetData"> SELECT T01.setup_value_1 AS display_target ,T01.display_name_1 AS display_target_name ,T01.display_order AS display_target_display_order FROM m_common_type_detail T01 WHERE T01.type_id = 'TG01000011' ORDER BY T01.display_order ASC </select> <select id="SANA0801SelectItemTagCodeList" parameterType="jp.co.sej.ssc.an.sana0801.data.Sana0801ParamtData" resultType="jp.co.sej.ssc.an.sana0801.data.Sana0801ItemTagResultData"> /*+ set(google_columnar_engine.enable_columnar_scan off) IndexScan(t04 m_common_type_detail_pkey) IndexScan(t01 m_item_tag_pkey) IndexScan(t02 m_item_tagged_pkey) NestLoop(t01 t11) NestLoop(t11 t31) IndexOnlyScan(t11 idx_m_item_tagged_01) IndexScan(t31 m_item_pkey) NestLoop(t01 t03) IndexScan(t03 m_item_tag_details_per_person_pkey) */ WITH <if test='itemTagCondList != null and itemTagCondList.size() > 0'> v_para_info AS ( select UNNEST ( ARRAY <foreach collection="itemTagCondList" item="item" index="index" open="[" close="]" separator=","> #{item} </foreach> ) AS para_value ) , v_item_tag_info AS ( SELECT SPLIT_PART(TS3.para_value, ',', 1) AS item_tag_code , SPLIT_PART(TS3.para_value, ',', 2) AS employee_number FROM v_para_info TS3 ), </if> v_tag_info AS ( SELECT T01.original_store_code , T01.item_tag_code , MAX(T01.item_tag_input_name) AS item_tag_input_name , MAX(T01.employee_number) AS item_tag_employee_number , MAX(T01.item_tag_type) AS item_tag_type , MAX(T01.item_tag_name) AS item_tag_name , MAX(T01.item_tag_usage) AS item_tag_usage , MAX(T01.alert_send_date) AS alert_send_date , MAX(T01.order_display_start_date) AS order_display_start_date , MAX(T01.order_display_end_date) AS order_display_end_date , MAX(T01.item_tag_input_datetime) AS item_tag_input_datetime , MAX(T01.item_tag_input_person) AS item_tag_input_person , MAX(T01.item_tag_input_person_type) AS item_tag_input_person_type , MAX(T01.item_tag_update_datetime) AS item_tag_update_datetime , MAX(T01.update_count) AS update_count , MAX(T01.item_tag_priority_display_flag) AS item_tag_priority_display_flag , COUNT(T02.item_code) AS item_quantity , MAX( CASE WHEN T02.alert_cleared_flag = '0' AND T01.order_display_end_date <![CDATA[ >= ]]> #{recordDate} THEN T02.recommendation_cancel_alert_flag ELSE '0' END ) AS recommendation_cancel_alert_flag , COALESCE(MAX(T03.new_arrival_flag), '0') AS new_arrival_flag , MAX(T01.long_term_preservation_flag) AS long_term_preservation_flag , MAX(T01.apply_flag) AS apply_flag , MAX(T01.out_of_date_alert_flag) AS out_of_date_alert_flag , MAX(T01.update_person_id) AS item_tag_update_person FROM m_item_tag T01 <if test='itemTagCondList != null and itemTagCondList.size() > 0'> INNER JOIN v_item_tag_info T06 ON T01.item_tag_code = T06.item_tag_code AND T01.employee_number = T06.employee_number </if> LEFT OUTER JOIN m_item_tagged T02 ON T02.original_store_code = '${originalStoreCode}' AND T02.original_store_code = T01.original_store_code AND T02.item_tag_code = T01.item_tag_code AND T02.employee_number = T01.employee_number LEFT OUTER JOIN m_item_tag_details_per_person T03 ON T03.original_store_code = '${originalStoreCode}' AND T01.original_store_code = T03.original_store_code AND T01.item_tag_code = T03.item_tag_code AND ( ( T01.item_tag_type = '04' AND T03.employee_number = T01.employee_number ) OR ( T01.item_tag_type <![CDATA[ <> ]]> '04' AND T03.employee_number = #{employeeNumber} ) ) WHERE T01.original_store_code = '${originalStoreCode}' AND ( ( T01.item_tag_type = '04' AND T01.employee_number = #{employeeNumber} ) OR ( T01.employee_number = lpad(#{originalStoreCode}, 13, '0') AND T01.item_tag_type IN ('01', '02', '03') ) ) <if test='searchTargetType == "2" '> AND T01.order_display_start_date <![CDATA[ <= ]]> #{recordDate} AND T01.order_display_end_date >= #{recordDate} </if> <if test='itemTagNameList != null and itemTagNameList.size() > 0 '> AND <foreach collection="itemTagNameList" item="item" index="index" open="(" close=")" separator=" AND "> T01.item_tag_name LIKE CONCAT('%', #{item}, '%') </foreach> </if> <if test='(editedSearchKeywordList != null and editedSearchKeywordList.size() > 0) or (itemCodeList != null and itemCodeList.size() > 0)'> AND ( <if test='itemCodeList != null and itemCodeList.size() > 0'> EXISTS ( SELECT 1 FROM m_item_tagged T11 WHERE T11.original_store_code = '${originalStoreCode}' AND T11.original_store_code = T01.original_store_code AND T11.item_tag_code = T01.item_tag_code AND T11.employee_number = T01.employee_number AND T11.item_code IN <foreach collection="itemCodeList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ) </if> <if test='(editedSearchKeywordList != null and editedSearchKeywordList.size() > 0) and (itemCodeList != null and itemCodeList.size() > 0)'> OR </if> <if test='editedSearchKeywordList != null and editedSearchKeywordList.size() > 0'> EXISTS ( SELECT 1 FROM m_item_tagged T11 INNER JOIN m_ia_item_by_store_all T31 ON T31.version = #{versionItemByStoreAll} AND T31.original_store_code = #{originalStoreCode} AND T31.original_store_code = T11.original_store_code AND T31.system_item_code = T11.system_item_code AND ( ( T31.label_code_0 IN <foreach collection="editedSearchKeywordList" item="editedSearchKeyword" index="index" open="(" close=")" separator=","> #{editedSearchKeyword} </foreach> AND T31.label_code_0 <![CDATA[ <> ]]> '0000000000000' ) OR ( T31.label_code_1 IN <foreach collection="editedSearchKeywordList" item="editedSearchKeyword" index="index" open="(" close=")" separator=","> #{editedSearchKeyword} </foreach> AND T31.label_code_1 <![CDATA[ <> ]]> '0000000000000' ) OR ( T31.label_code_2 IN <foreach collection="editedSearchKeywordList" item="editedSearchKeyword" index="index" open="(" close=")" separator=","> #{editedSearchKeyword} </foreach> AND T31.label_code_2 <![CDATA[ <> ]]> '0000000000000' ) OR ( T31.label_code_3 IN <foreach collection="editedSearchKeywordList" item="editedSearchKeyword" index="index" open="(" close=")" separator=","> #{editedSearchKeyword} </foreach> AND T31.label_code_3 <![CDATA[ <> ]]> '0000000000000' ) ) WHERE T11.original_store_code = '${originalStoreCode}' AND T11.original_store_code = T01.original_store_code AND T11.item_tag_code = T01.item_tag_code AND T11.employee_number = T01.employee_number ) </if> ) </if> <if test='(editedSearchKeywordList == null or editedSearchKeywordList.size() == 0) and displayTargetItemCodeList != null and displayTargetItemCodeList.size() > 0'> AND EXISTS ( SELECT 1 FROM m_item_tagged T21 WHERE T21.original_store_code = '${originalStoreCode}' AND T21.original_store_code = T01.original_store_code AND T21.item_tag_code = T01.item_tag_code AND T21.employee_number = T01.employee_number AND T21.item_code IN <foreach collection="displayTargetItemCodeList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ) </if> <if test='itemTagTypeList != null and itemTagTypeList.size() > 0'> AND T01.item_tag_type IN <foreach collection="itemTagTypeList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </if> <if test='itemTagEmployeeNumberList != null and itemTagEmployeeNumberList.size() > 0'> AND ((T01.item_tag_type = '04' AND T01.item_tag_input_person IN <foreach collection="itemTagEmployeeNumberList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach>) OR (T01.item_tag_type <![CDATA[ <> ]]> '04') ) </if> <if test='autoCreationTagTypeList != null and autoCreationTagTypeList.size() > 0'> AND ((T01.item_tag_type IN ('01', '02', '03', '04') AND COALESCE(TRIM(T01.automatic_generation_type), '') = '') OR (T01.item_tag_type = '02' AND T01.automatic_generation_type IN <foreach collection="autoCreationTagTypeList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> ) ) </if> <if test='searchTargetType == "3" '> AND ((T01.long_term_preservation_flag = '0' AND T01.order_display_end_date <![CDATA[ >= ]]> #{recordDate}) OR T01.long_term_preservation_flag = '1' ) </if> <if test='longTerm == "0,0" or longTerm == "1,1"'> AND T01.long_term_preservation_flag IN ('0', '1') </if> <if test='searchTargetType != "3" and longTerm == "1,0"'> AND T01.long_term_preservation_flag = '1' </if> <if test='searchTargetType != "3" and longTerm == "0,1"'> AND T01.long_term_preservation_flag = '0' </if> <if test='applyUnapply == "0,0" or applyUnapply == "1,1"'> AND T01.apply_flag IN ('0', '1') </if> <if test='applyUnapply == "1,0"'> AND T01.apply_flag = '1' </if> <if test='applyUnapply == "0,1"'> AND T01.apply_flag = '0' </if> <if test='orderDisplayStartDate != null'> AND T01.order_display_end_date >= #{orderDisplayStartDate} </if> <if test='orderDisplayEndDate != null'> AND T01.order_display_start_date <![CDATA[ <= ]]> #{orderDisplayEndDate} </if> <if test='displayRegistrationStartDate != null'> AND T01.item_tag_input_datetime >= #{displayRegistrationStartDate} </if> <if test='displayRegistrationEndDate != null'> AND T01.item_tag_input_datetime <![CDATA[ < ]]> #{displayRegistrationEndDate} + '1 day' :: interval </if> <if test='dailyNarrowDownFlg != null and dailyNarrowDownFlg == "1"'> AND EXISTS( SELECT 1 FROM m_ia_item_by_store_all T22 WHERE T22.version = #{versionItemByStoreAll} AND T22.original_store_code = #{originalStoreCode} AND T22.original_store_code = T02.original_store_code AND T22.cover_timezone_aggregate_flag = '1' AND T22.system_item_code = T02.system_item_code ) </if> <if test='dailyNarrowDownFlg != null and dailyNarrowDownFlg == "2"'> AND EXISTS( SELECT 1 FROM m_ia_item_by_store_all T22 WHERE T22.version = #{versionItemByStoreAll} AND T22.original_store_code = #{originalStoreCode} AND T22.original_store_code = T02.original_store_code AND T22.cover_timezone_aggregate_flag = '0' AND T22.system_item_code = T02.system_item_code ) </if> GROUP BY T01.original_store_code , T01.item_tag_code ) SELECT T05.original_store_code , T05.item_tag_code , T05.item_tag_employee_number AS item_tag_employee_number , T05.item_tag_type AS item_tag_type , T05.item_tag_name AS item_tag_name , T05.item_tag_usage AS item_tag_usage , T05.alert_send_date AS alert_send_date , T05.order_display_start_date AS order_display_start_date , T05.order_display_end_date AS order_display_end_date , T05.item_tag_input_datetime AS item_tag_input_datetime , T05.item_tag_input_person AS item_tag_input_person , CASE WHEN T05.item_tag_input_person_type = '04' THEN T05.item_tag_input_name ELSE T04.display_name_1 END AS item_tag_input_person_name , T05.item_tag_input_person_type AS item_tag_input_person_type , T04.display_name_1 AS item_tag_input_person_type_name , T05.item_tag_update_datetime AS item_tag_update_datetime , T05.update_count AS update_count , T05.item_tag_priority_display_flag AS item_tag_priority_display_flag , T05.item_quantity AS item_quantity , T05.recommendation_cancel_alert_flag AS recommendation_cancel_alert_flag , COALESCE(T05.new_arrival_flag, '0') AS new_arrival_flag , T05.long_term_preservation_flag AS long_term_preservation_flag , T05.apply_flag AS apply_flag , T05.out_of_date_alert_flag AS out_of_date_alert_flag , T05.item_tag_update_person AS item_tag_update_person , CASE WHEN T05.item_tag_type = '04' AND T05.item_tag_update_person = '9999999999999' THEN T04.display_name_1 WHEN ( T05.item_tag_type IN ('02', '03') AND T05.item_tag_update_person LIKE 'SAND%' ) THEN T04.display_name_1 WHEN ( T05.item_tag_type IN ('02', '03') AND T05.item_tag_update_person = '9999999999999' ) THEN T04.display_name_3 ELSE T04.display_name_2 END AS item_tag_update_name , CASE WHEN #{recordDate} <![CDATA[ < ]]> T05.order_display_start_date THEN '2' WHEN #{recordDate} BETWEEN T05.order_display_start_date AND T05.order_display_end_date THEN '1' ELSE '3' END AS sort_key FROM v_tag_info T05 LEFT OUTER JOIN m_common_type_detail T04 ON T04.type_id = 'TG01000002' AND T04.setup_value_1 = T05.item_tag_input_person_type ORDER BY sort_key ASC , T05.new_arrival_flag DESC , T05.item_tag_priority_display_flag DESC , T05.order_display_start_date DESC , T05.item_tag_input_datetime DESC , T05.item_tag_type ASC , T05.item_tag_code ASC 给我换成数据库能执行的SQL,参数随便换
09-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值