Files
F6--/张阳脚本/sql.sql
T
2026-02-25 09:46:59 +08:00

128 lines
5.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SELECT
'{{%%p_start_date}}' AS ,
'{{%%p_end_date}}' AS ,
sos.id_storage AS id,
sos.storage_name AS ,
sos.part_name AS ,
sos.custom_code AS ,
sos.supplier_code AS ,
sos.category_root_name AS ,
sos.category_name AS ,
sos.part_brand AS ,
/* ---------- 期初(begin_*:仅在开始日取值;>60天仅月初保留) ---------- */
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_start_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> 1
THEN 0
WHEN sos.bill_day = '{{%%p_start_date}}'
THEN sos.begin_number
ELSE 0
END
) AS ,
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_start_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> 1
THEN 0
WHEN sos.bill_day = '{{%%p_start_date}}'
THEN sos.begin_price
ELSE 0
END
) AS ,
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_start_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> 1
THEN 0
WHEN sos.bill_day = '{{%%p_start_date}}'
THEN sos.begin_price_no_tax
ELSE 0
END
) AS ,
/* ---------- 入库数量 ---------- */
SUM(sos.cgdin_number) AS ,
SUM(sos.cgtin_number) AS 退,
SUM(sos.drdin_number) AS ,
SUM(sos.rkdin_number) AS ,
SUM(sos.ykrin_number) AS ,
SUM(sos.czrin_number) AS ,
/* ---------- 入库成本(除税) ---------- */
SUM(sos.cgdin_amount_no_tax) AS ,
SUM(sos.cgtin_amount_no_tax) AS 退,
SUM(sos.drdin_amount_no_tax) AS ,
SUM(sos.rkdin_amount_no_tax) AS ,
SUM(sos.ykrin_amount_no_tax) AS ,
SUM(sos.czrin_amount_no_tax) AS ,
/* ---------- 出库/退料相关数量 ---------- */
SUM(sos.pickout_number) AS ,
SUM(sos.tin_number) AS 退,
SUM(sos.dcdout_number) AS ,
SUM(sos.ckdout_number) AS ,
SUM(sos.czcout_number) AS ,
SUM(sos.ykcout_number) AS ,
/* ---------- 出库/退料相关成本(除税) ---------- */
SUM(sos.pickout_amount_no_tax) AS ,
SUM(sos.tin_amount_no_tax) AS 退,
SUM(sos.dcdout_amount_no_tax) AS ,
SUM(sos.ckdout_amount_no_tax) AS ,
SUM(sos.czcout_amount_no_tax) AS ,
SUM(sos.ykcout_amount_no_tax) AS ,
/* ---------- 期末(end_*:仅在结束日取值;>60天仅月末保留) ---------- */
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_end_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> DAY(LAST_DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')))
THEN 0
WHEN sos.bill_day = '{{%%p_end_date}}'
THEN sos.end_number
ELSE 0
END
) AS ,
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_end_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> DAY(LAST_DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')))
THEN 0
WHEN sos.bill_day = '{{%%p_end_date}}'
THEN sos.end_price
ELSE 0
END
) AS ,
SUM(
CASE
WHEN DATEDIFF(CURRENT_DATE(), STR_TO_DATE('{{%%p_end_date}}', '%Y-%m-%d')) > 60
AND DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')) <> DAY(LAST_DAY(STR_TO_DATE(sos.bill_day, '%Y-%m-%d')))
THEN 0
WHEN sos.bill_day = '{{%%p_end_date}}'
THEN sos.end_price_no_tax
ELSE 0
END
) AS
FROM rpt_customized_ndsd_storage_order_stat AS sos
WHERE 1=1
/* ---------- 固定过滤条件(按你现有配置保留) ---------- */
AND sos.id_own_group = '11240984669918396614'
AND sos.id_own_org IN ('11240984669918400634')
/* ---------- 日期区间过滤(bill_day 为文本 YYYY-MM-DD ---------- */
AND sos.bill_day >= '{{%%p_start_date}}'
AND sos.bill_day <= '{{%%p_end_date}}'
GROUP BY
sos.id_storage,
sos.part_name,
sos.custom_code,
sos.supplier_code,
sos.category_root_name,
sos.category_name;