Files
Neo-ZQYY/scripts/ops/verify_gift_card_breakdown.sql

54 lines
2.9 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.
-- ============================================================
-- 赠送卡细分数据一致性验证脚本
-- 用途ETL 跑数完成后,验证 DWS 层赠送卡细分字段的数据正确性
-- 关联需求Requirements 10.1, 10.2, 10.3
-- ============================================================
-- ------------------------------------------------------------
-- 1. 验证余额恒等式 (Requirement 10.3)
-- gift_card_balance = gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance
-- 预期结果:空集(无违反恒等式的记录)
-- ------------------------------------------------------------
SELECT site_id, stat_date,
gift_card_balance,
gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance AS sum_breakdown,
gift_card_balance - (gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance) AS diff
FROM dws.dws_finance_recharge_summary
WHERE gift_card_balance != gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance;
-- ------------------------------------------------------------
-- 2. 验证新增恒等式 (Requirement 10.2 隐含)
-- recharge_gift = gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge
-- 预期结果:空集(无违反恒等式的记录)
-- ------------------------------------------------------------
SELECT site_id, stat_date,
recharge_gift,
gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge AS sum_breakdown,
recharge_gift - (gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge) AS diff
FROM dws.dws_finance_recharge_summary
WHERE recharge_gift != gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge;
-- ------------------------------------------------------------
-- 3. 验证 DWS 与 DWD 源数据一致 (Requirement 10.1)
-- DWS 各类型余额 = DWD dim_member_card_account 对应 card_type_id 的 balance 之和
-- 预期结果DWS 行与 DWD 行的 liquor/table_fee/voucher 数值一致
-- card_type_id 映射:
-- 2794699703437125 → 酒水卡 (liquor)
-- 2791990152417157 → 台费卡 (table_fee)
-- 2793266846533445 → 抵用券 (voucher)
-- ------------------------------------------------------------
SELECT 'DWS' AS source,
SUM(gift_liquor_balance) AS liquor,
SUM(gift_table_fee_balance) AS table_fee,
SUM(gift_voucher_balance) AS voucher
FROM dws.dws_finance_recharge_summary
WHERE stat_date = CURRENT_DATE
UNION ALL
SELECT 'DWD',
SUM(CASE WHEN card_type_id = 2794699703437125 THEN balance ELSE 0 END),
SUM(CASE WHEN card_type_id = 2791990152417157 THEN balance ELSE 0 END),
SUM(CASE WHEN card_type_id = 2793266846533445 THEN balance ELSE 0 END)
FROM dwd.dim_member_card_account
WHERE scd2_is_current = 1 AND COALESCE(is_delete, 0) = 0
AND card_type_id IN (2794699703437125, 2791990152417157, 2793266846533445);