54 lines
2.9 KiB
SQL
54 lines
2.9 KiB
SQL
-- ============================================================
|
||
-- 赠送卡细分数据一致性验证脚本
|
||
-- 用途: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);
|