Project

General

Profile

VOC support #2850 » Script.sql

Mon Nguyen, 01/08/2026 09:02 AM

 
1

2
SET @NOWADAY = '20260106';
3
SET @F_R1 = DATE(@NOWADAY);
4
SET @T_R1 = DATE_ADD(@F_R1, INTERVAL 30 DAY);
5
SET @F_R3 = DATE_ADD(@F_R1, INTERVAL 31 DAY);
6
SET @T_R3 = DATE_ADD(@F_R1, INTERVAL 60 DAY);
7
SET @F_R4 = DATE_ADD(@F_R1, INTERVAL 61 DAY);
8
SET @T_R4 = DATE_ADD(@F_R1, INTERVAL 90 DAY);
9
 
10
WITH
11
-- 1 Daily rate summary by hotel + room type
12
VRDP_SUM AS (
13
    SELECT
14
        VVHC.HOTEL_CODE,
15
        VVRP.VENDOR_ROOM_TYPE_SEQ,
16
         SUM(CASE WHEN VRDP.VENDOR_NET_AMOUNT > 0 AND VRDP.SALES_STOP_YN = 'N' THEN 1 ELSE 0 END) AS CNT
17
    FROM VD_VENDOR_ROOM_DAILY_PRICE VRDP
18
    INNER JOIN VD_VENDOR_ROOM_PLAN VVRP ON VVRP.ROOM_PLAN_SEQ = VRDP.ROOM_PLAN_SEQ AND VVRP.SALES_STOP_YN = 'N'
19
    INNER JOIN VD_VENDOR_HOTEL_CONTRACT VVHC ON VVRP.HOTEL_CONTRACT_SEQ = VVHC.HOTEL_CONTRACT_SEQ AND VVHC.CONTRACT_STATUS_CODE = 'A'
20
--     WHERE VRDP.APPLIED_DATE BETWEEN @F_R1 AND @T_R1 -- 0-30
21
    -- WHERE VRDP.APPLIED_DATE BETWEEN @F_R3 AND @T_R3 -- 31-60
22
    WHERE VRDP.APPLIED_DATE BETWEEN @F_R4 AND @T_R4    -- 61-90 
23
    GROUP BY VRDP.HOTEL_CODE, VRDP.VENDOR_ROOM_TYPE_SEQ
24
    
25
),
26
-- ⃣ Allotment summary by room type
27
VRA_SUM AS (
28
    SELECT
29
        VRA.VENDOR_ROOM_TYPE_SEQ,
30
        SUM(CASE WHEN VRA.LEFT_COUNT_SUM > 0 AND VRA.SALES_STOP_YN = 'N' THEN 1 ELSE 0 END) AS CNT
31
    FROM VD_VENDOR_ROOM_ALLOTMENT VRA
32
    INNER JOIN VD_VENDOR_ROOM_TYPE VRT ON VRA.VENDOR_ROOM_TYPE_SEQ = VRT.VENDOR_ROOM_TYPE_SEQ AND VRT.SALES_STOP_YN = 'N'
33
    INNER JOIN VD_VENDOR_HOTEL_CONTRACT VVHC ON VVHC.HOTEL_CODE = VRT.HOTEL_CODE AND VVHC.CONTRACT_STATUS_CODE = 'A'
34
--     WHERE VRA.APPLIED_DATE BETWEEN @F_R1 AND @T_R1 -- 0-30
35
    -- WHERE VRA.APPLIED_DATE BETWEEN @F_R3 AND @T_R3 -- 31-60
36
    WHERE VRA.APPLIED_DATE BETWEEN @F_R4 AND @T_R4    -- 61-90
37
    GROUP BY VRA.VENDOR_ROOM_TYPE_SEQ
38
),
39
HOTEL_INFO AS (
40
    SELECT DISTINCT
41
        HM.COUNTRY_CODE,
42
        BCC.COUNTRY_NAME_EN AS COUNTRY_NAME,
43
        HM.HOTEL_CODE,
44
        IFNULL(HM.LEGACY_HOTEL_CODE, VHC.LEGACY_HOTEL_CODE) AS LEGACY_HOTEL_CODE,
45
        HM.HOTEL_NAME_EN AS HOTEL_NAME,
46
        HM.REGION_CODE,
47
        BRC.REGION_NAME_EN AS REGION_NAME,
48
        HM.REGISTER_STATUS_CODE,
49
        DC.DETAIL_CODE_NAME_EN AS HOTEL_STATUS,
50
        HM.ADDRESS_EN,
51
        HM.PHONE_NO,
52
        HM.STAR_RATING,
53
        VHC.CONTRACT_STATUS_CODE,
54
        VRT.VENDOR_ROOM_TYPE_SEQ,
55
        IFNULL(HM.ADDRESS_EN, IFNULL(HM.ADDRESS_KO, IFNULL(HM.ADDRESS_JA, IFNULL(HM.ADDRESS_VI, HM.ADDRESS_ZH)))) AS Address,
56
        VRT.LEGACY_ROOM_TYPE_CODE,
57
        VRT.ROOM_TYPE_NAME_EN
58
    FROM HO_HOTEL_MASTER HM
59
    INNER JOIN VD_VENDOR_HOTEL_CONTRACT VHC ON HM.HOTEL_CODE = VHC.HOTEL_CODE AND VHC.CONTRACT_STATUS_CODE = 'A'
60
    INNER JOIN VD_VENDOR_ROOM_TYPE VRT ON HM.HOTEL_CODE = VRT.HOTEL_CODE AND VRT.SALES_STOP_YN = 'N'
61
    LEFT JOIN BS_COUNTRY_CODE BCC ON HM.COUNTRY_CODE = BCC.COUNTRY_CODE
62
    LEFT JOIN BS_REGION_CODE BRC ON BRC.REGION_CODE = HM.REGION_CODE
63
    LEFT JOIN BS_DETAIL_CODE DC ON DC.MASTER_CODE = 'BS018' AND HM.REGISTER_STATUS_CODE = DC.DETAIL_CODE
64
)
65
SELECT  HI.HOTEL_CODE AS HotelCode
66
  , HI.LEGACY_HOTEL_CODE AS LegacyHotelCode
67
  , HI.HOTEL_NAME AS HotelName
68
  , HI.COUNTRY_CODE AS CountryCode
69
  , HI.COUNTRY_NAME AS CountryName
70
  , HI.REGION_CODE AS RegionCode
71
  , HI.REGION_NAME AS RegionName
72
  , HI.Address AS Address
73
  , HI.PHONE_NO AS PhoneNumber
74
  , HI.VENDOR_ROOM_TYPE_SEQ AS RoomCode
75
  , HI.LEGACY_ROOM_TYPE_CODE AS LegacyRoomCode
76
  , HI.ROOM_TYPE_NAME_EN AS RoomName
77
  , HI.HOTEL_STATUS AS HotelStatus
78
  , CASE 
79
        WHEN SUM(CASE WHEN (IFNULL(RDP.CNT,0) > 10 OR IFNULL(RA.CNT,0) > 10) THEN 0 ELSE 1 END) > 0
80
        THEN 'No bookable'
81
        ELSE 'Bookable'
82
    END AS Bookable
83
FROM HOTEL_INFO HI
84
LEFT JOIN VRDP_SUM RDP ON RDP.HOTEL_CODE = HI.HOTEL_CODE AND RDP.VENDOR_ROOM_TYPE_SEQ = HI.VENDOR_ROOM_TYPE_SEQ
85
LEFT JOIN VRA_SUM RA ON RA.VENDOR_ROOM_TYPE_SEQ = HI.VENDOR_ROOM_TYPE_SEQ 
86
GROUP BY 
87
    HI.COUNTRY_CODE,
88
    HI.COUNTRY_NAME,
89
    HI.REGION_NAME,
90
    HI.HOTEL_CODE,    
91
    HI.HOTEL_NAME,
92
    HI.LEGACY_HOTEL_CODE,
93
    HI.HOTEL_STATUS
94
ORDER BY 
95
    HI.COUNTRY_CODE, 
96
    HI.HOTEL_CODE;
(1-1/3)
Add picture from clipboard (Maximum size: 50 MB)