How to solve this duplicate lines?

I have a query that includes two WITH clauses. The first one, ‘feriados’, returns every day between the start date and end date from a row in a table named ‘holidays’. A holiday may start and end on the same day or have different start and end dates. The second clause defines a function named ‘data_distinta’, which determines whether a day is a valid work day or not. A valid work day is defined as a day that is neither a weekend nor a holiday (being a holiday is filtered by the ‘feriados’ function). When it’s a valid work day, the function returns 1; otherwise, it returns 0.

The issue I’m encountering is that the final result is showing two identical days with opposite values for ‘valid work day’.

I’m unable to create a new table to represent the calendar, and the existing calendar table only includes holidays.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>WITH RECURSIVE feriados AS
(
SELECT begin_date AS dateValue, entities_id AS id
FROM holidays
UNION ALL
SELECT DATE_ADD(dateValue, INTERVAL 1 DAY), id AS id
FROM feriados
WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) <= (SELECT end_date FROM holidays WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) BETWEEN begin_date AND end_date)
),
data_distinta AS
(
SELECT DISTINCT DATE( tickets.date) AS data,
(CASE
WHEN WEEKDAY( tickets.date)>=5 THEN 0
WHEN WEEKDAY( tickets.date)<5 AND DATE( tickets.date) NOT LIKE feriados.dateValue THEN 1
WHEN DATE( tickets.date) LIKE feriados.dateValue THEN 0
END
) AS validWorkDay
FROM tickets
LEFT JOIN entities
ON ( tickets.entities_id = entities.id)
LEFT JOIN calendars
ON ( calendars.entities_id = entities.id)
LEFT JOIN calendars_holidays
ON ( calendars.id = calendars_holidays.calendars_id)
LEFT JOIN holidays
ON ( holidays.id = calendars_holidays.holidays_id)
JOIN feriados)
SELECT data_distinta.data, data_distinta.validWorkDay
FROM data_distinta
WHERE data_distinta.data >= '05/01/2024'
</code>
<code>WITH RECURSIVE feriados AS ( SELECT begin_date AS dateValue, entities_id AS id FROM holidays UNION ALL SELECT DATE_ADD(dateValue, INTERVAL 1 DAY), id AS id FROM feriados WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) <= (SELECT end_date FROM holidays WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) BETWEEN begin_date AND end_date) ), data_distinta AS ( SELECT DISTINCT DATE( tickets.date) AS data, (CASE WHEN WEEKDAY( tickets.date)>=5 THEN 0 WHEN WEEKDAY( tickets.date)<5 AND DATE( tickets.date) NOT LIKE feriados.dateValue THEN 1 WHEN DATE( tickets.date) LIKE feriados.dateValue THEN 0 END ) AS validWorkDay FROM tickets LEFT JOIN entities ON ( tickets.entities_id = entities.id) LEFT JOIN calendars ON ( calendars.entities_id = entities.id) LEFT JOIN calendars_holidays ON ( calendars.id = calendars_holidays.calendars_id) LEFT JOIN holidays ON ( holidays.id = calendars_holidays.holidays_id) JOIN feriados) SELECT data_distinta.data, data_distinta.validWorkDay FROM data_distinta WHERE data_distinta.data >= '05/01/2024' </code>
WITH RECURSIVE feriados AS 
(
    SELECT begin_date AS dateValue, entities_id AS id
    FROM  holidays
    UNION ALL
    SELECT DATE_ADD(dateValue, INTERVAL 1 DAY), id AS id
    FROM feriados
    WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) <= (SELECT end_date FROM  holidays WHERE DATE_ADD(dateValue, INTERVAL 1 DAY) BETWEEN begin_date AND end_date)
),

data_distinta AS 
(
    SELECT DISTINCT DATE( tickets.date) AS data, 
    
    (CASE
            WHEN WEEKDAY( tickets.date)>=5 THEN 0
            WHEN WEEKDAY( tickets.date)<5 AND DATE( tickets.date) NOT LIKE feriados.dateValue THEN 1
            WHEN DATE( tickets.date) LIKE feriados.dateValue THEN 0 

    END
    ) AS validWorkDay
    
    FROM  tickets
    LEFT JOIN  entities
        ON ( tickets.entities_id =  entities.id)
    LEFT JOIN  calendars
        ON ( calendars.entities_id =  entities.id)
    LEFT JOIN  calendars_holidays
        ON ( calendars.id =  calendars_holidays.calendars_id)
    LEFT JOIN  holidays
        ON ( holidays.id =  calendars_holidays.holidays_id)
    JOIN feriados)
SELECT data_distinta.data, data_distinta.validWorkDay
FROM data_distinta
WHERE data_distinta.data >= '05/01/2024'

this is the code I have

Im expecting

Expected result

but im getting
Actual result

New contributor

NIKOLAS CAVALHEIRO GONCALVES D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật