2nd commit
This commit is contained in:
+457
-101
@@ -753,120 +753,307 @@ def fetch_login(engine: Engine , mids: list[int]) -> pl.DataFrame:
|
||||
|
||||
|
||||
|
||||
def fetch_Promotion(engine: Engine, mids: list[int]) -> pl.DataFrame:
|
||||
|
||||
|
||||
|
||||
if not mids:
|
||||
log.warning("No MIDs — nothing to fetch.")
|
||||
return pl.DataFrame()
|
||||
|
||||
mid_list = ",".join(str(mid) for mid in mids)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def fetch_journey_plan(
|
||||
engine: Engine,
|
||||
report_date: date
|
||||
) -> pl.DataFrame:
|
||||
|
||||
sql = f"""
|
||||
SELECT
|
||||
sc.MID AS mid,
|
||||
{p} AS project_id,
|
||||
sc.StoreId AS store_id,
|
||||
Em.EmpId AS employee_id,
|
||||
CONVERT(date, sc.VisitDate) AS visit_date,
|
||||
Em.SupervisorId AS supervisor_id,
|
||||
sm.ChannelId AS channel_id,
|
||||
sm.ChainId AS chain_id,
|
||||
sm.StoreTypeId AS storetype_id,
|
||||
msd.PromoDefinitionId AS promo_definition_id,
|
||||
msd.PromoDefinitionName AS promo_definition_name,
|
||||
SELECT
|
||||
StoreId AS store_id,
|
||||
EmpId AS employee_id,
|
||||
CAST(VisitDate AS DATE) AS visit_date,
|
||||
Deviation AS process_id
|
||||
|
||||
-- Resolve which dimension level the promo targets
|
||||
-- (Category / SubCategory / Brand / SubBrand)
|
||||
CASE
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_Category' THEN 'Category'
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_SubCategory' THEN 'SubCategory'
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_Brand' THEN 'Brand'
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_SubBrand' THEN 'SubBrand'
|
||||
ELSE ''
|
||||
END AS promotion_details,
|
||||
FROM OneApp_KelloggsMT.dbo.Mapping_JourneyPlan
|
||||
|
||||
ts.PromoValue AS promotion_details_id,
|
||||
WHERE MONTH(VisitDate) = {report_date.month}
|
||||
AND YEAR(VisitDate) = {report_date.year}
|
||||
|
||||
-- Resolve the actual name of that dimension item
|
||||
-- SQL Server evaluates exactly ONE of these subqueries per row
|
||||
CASE
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_Category'
|
||||
THEN (SELECT a.CategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Category a
|
||||
WHERE a.CategoryId = ts.PromoValue)
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_SubCategory'
|
||||
THEN (SELECT a.SubCategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubCategory a
|
||||
WHERE a.SubCategoryId = ts.PromoValue)
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_Brand'
|
||||
THEN (SELECT a.BrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Brand a
|
||||
WHERE a.BrandId = ts.PromoValue)
|
||||
WHEN ISNULL(ts.PromoTable,'') = 'Master_SubBrand'
|
||||
THEN (SELECT a.SubBrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubBrand a
|
||||
WHERE a.SubBrandId = ts.PromoValue)
|
||||
END AS promo_value_name,
|
||||
|
||||
-- Present flag: 0 → 'N', anything else → 'Y'
|
||||
CASE WHEN ts.Present = 0 THEN 'N' ELSE 'Y' END AS is_present,
|
||||
|
||||
-- Reason only populated when promo is ABSENT
|
||||
CASE
|
||||
WHEN ts.Present = 1 THEN ''
|
||||
ELSE ISNULL(mnp.PromoReason, '')
|
||||
END AS reason,
|
||||
|
||||
ISNULL(mpq.PromoQuestionName, '') AS question,
|
||||
ISNULL(tpq.PromoAnswerName, '') AS answer,
|
||||
|
||||
-- Image URLs — empty string when no image
|
||||
CASE
|
||||
WHEN ISNULL(SHI.PromoImage1,'') = '' THEN ''
|
||||
ELSE 'https://kimt1.parinaam.in/Upload/PromotionImages/'
|
||||
+ SHI.PromoImage1
|
||||
END AS image1,
|
||||
CASE
|
||||
WHEN ISNULL(SHI.PromoImage2,'') = '' THEN ''
|
||||
ELSE 'https://kimt1.parinaam.in/Upload/PromotionImages/'
|
||||
+ SHI.PromoImage2
|
||||
END AS image2,
|
||||
|
||||
GETDATE() AS update_date,
|
||||
'ETL-SQLAlchemy' AS update_by
|
||||
|
||||
FROM OneApp_KelloggsMT.dbo.T_Promotion ts
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.T_StoreCoverage sc
|
||||
ON ts.mid = sc.mid
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_StoreDetail sm
|
||||
ON sc.StoreId = sm.StoreId
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_Employee_Detail Em
|
||||
ON sc.EmpId = Em.EmpId
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_PromotionDefinition msd
|
||||
ON msd.PromoDefinitionId = ts.PromoDefinitionId
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_PromotionImages SHI
|
||||
ON ts.PId = SHI.PId
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_PromotionReason mnp
|
||||
ON ts.PromoReasonId = mnp.PromoReasonId
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.t_promotionquestion tpq
|
||||
ON ts.PId = tpq.PId
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_PromotionQuestion mpq
|
||||
ON tpq.PromoQuestionId = mpq.PromoQuestionId
|
||||
|
||||
WHERE Em.EmpName NOT LIKE 'test%'
|
||||
AND sc.MID IN ({mid_list})
|
||||
AND EmpId NOT IN (
|
||||
SELECT ID
|
||||
FROM OneApp_KelloggsMT.dbo.AspNetUsers
|
||||
WHERE UserName LIKE 'TEST%'
|
||||
)
|
||||
"""
|
||||
|
||||
log.info(f"Fetching Coverage data for {len(mids):,} MIDs")
|
||||
|
||||
log.info(
|
||||
f"Fetching Journey Plan for {report_date:%Y-%m}"
|
||||
)
|
||||
|
||||
df = pl.read_database(
|
||||
query=sql,
|
||||
connection=engine
|
||||
)
|
||||
|
||||
log.info(f"Fetched {len(df):,} rows from SQL Server")
|
||||
log.info(
|
||||
f"Fetched {len(df):,} Journey Plan records"
|
||||
)
|
||||
return df
|
||||
|
||||
|
||||
|
||||
def fetch_coverage_remarks(engine: Engine , mids: list[int]) -> pl.DataFrame:
|
||||
"""
|
||||
Source:
|
||||
OneApp_KelloggsMT.dbo.Master_NonWorkingReason
|
||||
|
||||
Target:
|
||||
coverage_remarks
|
||||
"""
|
||||
|
||||
sql = """
|
||||
SELECT
|
||||
40148 AS project_id,
|
||||
ReasonId AS reason_id,
|
||||
Reason AS reason_remarks
|
||||
FROM OneApp_KelloggsMT.dbo.Master_NonWorkingReason
|
||||
"""
|
||||
|
||||
log.info("Fetching Coverage Remarks")
|
||||
|
||||
df = pl.read_database(
|
||||
query=sql,
|
||||
connection=engine
|
||||
)
|
||||
|
||||
log.info(
|
||||
f"Fetched {len(df):,} Coverage Remark records"
|
||||
)
|
||||
|
||||
return df
|
||||
|
||||
|
||||
def fetch_web_logins(
|
||||
engine: Engine,
|
||||
run_date: date
|
||||
) -> pl.DataFrame:
|
||||
"""
|
||||
Source:
|
||||
T_User_Activity_Log
|
||||
|
||||
Target:
|
||||
Web Logins
|
||||
"""
|
||||
|
||||
sql = f"""
|
||||
SELECT DISTINCT
|
||||
40148 AS project_id,
|
||||
|
||||
EM1.Id AS supervisor_id,
|
||||
EM1.EmployeeName AS supervisor_name,
|
||||
|
||||
EM.Id AS emp_id,
|
||||
EM.EmployeeName AS employee_name,
|
||||
|
||||
DM.DesignationName AS designation,
|
||||
|
||||
CAST(AL.Date AS DATE) AS login_date,
|
||||
CONVERT(VARCHAR, AL.Date, 108) AS login_time,
|
||||
|
||||
AL.Thread AS activity_name,
|
||||
AL.Level AS activity_type,
|
||||
|
||||
R.RightName AS right_name,
|
||||
|
||||
GETDATE() AS create_date,
|
||||
'Pius' AS create_by
|
||||
|
||||
FROM OneApp_KelloggsMT.dbo.T_User_Activity_Log AL
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.AspNetUsers EM
|
||||
ON AL.Logger = EM.UserName
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.AspNetUsers EM1
|
||||
ON EM1.Id = EM.ManagerId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.AspNetUsers EM2
|
||||
ON EM2.Id = EM1.ManagerId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_Designation DM
|
||||
ON EM.DesignationId = DM.DesignationId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_City CM
|
||||
ON EM.CityId = CM.CityId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_State ST
|
||||
ON ST.StateId = CM.StateId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_Region RM
|
||||
ON RM.RegionId = ST.RegionId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Right_Master R
|
||||
ON EM.RightId = R.RightId
|
||||
|
||||
WHERE CAST(AL.Date AS DATE) = '{run_date}'
|
||||
"""
|
||||
|
||||
log.info(f"Fetching Web Login data for {run_date}")
|
||||
|
||||
df = pl.read_database(
|
||||
query=sql,
|
||||
connection=engine
|
||||
)
|
||||
|
||||
log.info(
|
||||
f"Fetched {len(df):,} Web Login records"
|
||||
)
|
||||
|
||||
return df
|
||||
|
||||
|
||||
|
||||
|
||||
def fetch_promotion(
|
||||
engine: Engine,
|
||||
mids: list[int]
|
||||
) -> pl.DataFrame:
|
||||
|
||||
if not mids:
|
||||
log.warning("No MIDs supplied.")
|
||||
return pl.DataFrame()
|
||||
|
||||
mid_list = ",".join(map(str, mids))
|
||||
|
||||
sql = f"""
|
||||
SELECT
|
||||
SC.MID,
|
||||
|
||||
40148 AS project_id,
|
||||
|
||||
SC.StoreId AS store_id,
|
||||
EM.EmpId AS employee_id,
|
||||
SC.VisitDate AS visit_date,
|
||||
|
||||
EM.SupervisorId AS supervisor_id,
|
||||
|
||||
SM.ChannelId AS channel_id,
|
||||
SM.ChainId AS chain_id,
|
||||
SM.StoreTypeId AS storetype_id,
|
||||
|
||||
MSD.PromoDefinitionId AS promo_definition_id,
|
||||
MSD.PromoDefinitionName AS promo_definition_name,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_Category'
|
||||
THEN 'Category'
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_SubCategory'
|
||||
THEN 'SubCategory'
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_Brand'
|
||||
THEN 'Brand'
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_SubBrand'
|
||||
THEN 'SubBrand'
|
||||
END AS promotion_details,
|
||||
|
||||
TS.PromoValue AS promotion_details_id,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_Category'
|
||||
THEN (
|
||||
SELECT CategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Category A
|
||||
WHERE A.CategoryId = TS.PromoValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_SubCategory'
|
||||
THEN (
|
||||
SELECT SubCategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubCategory A
|
||||
WHERE A.SubCategoryId = TS.PromoValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_Brand'
|
||||
THEN (
|
||||
SELECT BrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Brand A
|
||||
WHERE A.BrandId = TS.PromoValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.PromoTable,'')='Master_SubBrand'
|
||||
THEN (
|
||||
SELECT SubBrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubBrand A
|
||||
WHERE A.SubBrandId = TS.PromoValue
|
||||
)
|
||||
END AS promotion_value_name,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END AS present,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 1 THEN ''
|
||||
ELSE ISNULL(MNP.PromoReason,'')
|
||||
END AS reason,
|
||||
|
||||
ISNULL(MPQ.PromoQuestionName,'') AS promo_question,
|
||||
ISNULL(TPQ.PromoAnswerName,'') AS promo_answer,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(SHI.PromoImage1,'') = ''
|
||||
THEN ''
|
||||
ELSE
|
||||
'https://kimt1.parinaam.in/Upload/PromotionImages/'
|
||||
+ SHI.PromoImage1
|
||||
END AS image1,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(SHI.PromoImage2,'') = ''
|
||||
THEN ''
|
||||
ELSE
|
||||
'https://kimt1.parinaam.in/Upload/PromotionImages/'
|
||||
+ SHI.PromoImage2
|
||||
END AS image2
|
||||
|
||||
FROM OneApp_KelloggsMT.dbo.T_Promotion TS
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.T_StoreCoverage SC
|
||||
ON TS.MID = SC.MID
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_StoreDetail SM
|
||||
ON SC.StoreId = SM.StoreId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_Employee_Detail EM
|
||||
ON SC.EmpId = EM.EmpId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_PromotionDefinition MSD
|
||||
ON MSD.PromoDefinitionId = TS.PromoDefinitionId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_PromotionImages SHI
|
||||
ON TS.PId = SHI.PId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_PromotionReason MNP
|
||||
ON TS.PromoReasonId = MNP.PromoReasonId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_PromotionQuestion TPQ
|
||||
ON TS.PId = TPQ.PId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_PromotionQuestion MPQ
|
||||
ON TPQ.PromoQuestionId = MPQ.PromoQuestionId
|
||||
|
||||
WHERE EM.EmpName NOT LIKE 'test%'
|
||||
AND SC.MID IN ({mid_list})
|
||||
"""
|
||||
|
||||
log.info(
|
||||
f"Fetching Promotion data for {len(mids):,} MIDs"
|
||||
)
|
||||
|
||||
df = pl.read_database(
|
||||
query=sql,
|
||||
connection=engine
|
||||
)
|
||||
|
||||
log.info(
|
||||
f"Fetched {len(df):,} Promotion records"
|
||||
)
|
||||
|
||||
return df
|
||||
|
||||
@@ -874,3 +1061,172 @@ def fetch_Promotion(engine: Engine, mids: list[int]) -> pl.DataFrame:
|
||||
|
||||
|
||||
|
||||
def fetch_paid_visibility(
|
||||
engine: Engine,
|
||||
mids: list[int]
|
||||
) -> pl.DataFrame:
|
||||
|
||||
if not mids:
|
||||
log.warning("No MIDs supplied.")
|
||||
return pl.DataFrame()
|
||||
|
||||
mid_list = ",".join(map(str, mids))
|
||||
|
||||
sql = f"""
|
||||
SELECT
|
||||
SC.MID,
|
||||
|
||||
40148 AS project_id,
|
||||
|
||||
SC.StoreId AS store_id,
|
||||
EM.EmpId AS employee_id,
|
||||
SC.VisitDate AS visit_date,
|
||||
|
||||
EM.SupervisorId AS supervisor_id,
|
||||
|
||||
SM.ChannelId AS channel_id,
|
||||
SM.ChainId AS chain_id,
|
||||
SM.StoreTypeId AS storetype_id,
|
||||
|
||||
0 AS menu_id,
|
||||
'' AS menu_name,
|
||||
|
||||
TS.VisibilityId AS visibility_id,
|
||||
MV.VisibilityName AS visibility_name,
|
||||
|
||||
MSD.VisibilityDefinitionId AS visibility_definition_id,
|
||||
MSD.VisibilityDefinitionName AS visibility_definition_name,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_Category'
|
||||
THEN 'Category'
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_SubCategory'
|
||||
THEN 'SubCategory'
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_Brand'
|
||||
THEN 'Brand'
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_SubBrand'
|
||||
THEN 'SubBrand'
|
||||
END AS visibility_details,
|
||||
|
||||
TS.VisibilityValue AS visibility_details_id,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_Category'
|
||||
THEN (
|
||||
SELECT CategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Category A
|
||||
WHERE A.CategoryId = TS.VisibilityValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_SubCategory'
|
||||
THEN (
|
||||
SELECT SubCategoryName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubCategory A
|
||||
WHERE A.SubCategoryId = TS.VisibilityValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_Brand'
|
||||
THEN (
|
||||
SELECT BrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_Brand A
|
||||
WHERE A.BrandId = TS.VisibilityValue
|
||||
)
|
||||
|
||||
WHEN ISNULL(TS.VisibilityTable,'')='Master_SubBrand'
|
||||
THEN (
|
||||
SELECT SubBrandName
|
||||
FROM OneApp_KelloggsMT.dbo.Master_SubBrand A
|
||||
WHERE A.SubBrandId = TS.VisibilityValue
|
||||
)
|
||||
END AS visibility_value_name,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END AS present,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 0
|
||||
THEN TS.VisibilityReasonId
|
||||
ELSE NULL
|
||||
END AS reason_id,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 0
|
||||
THEN ISNULL(MNP.VisibilityReason,'')
|
||||
ELSE ''
|
||||
END AS reason,
|
||||
|
||||
ISNULL(MVQ.VisibilityQuestionName,'') AS visibility_question,
|
||||
ISNULL(TVQ.VisibilityAnswerName,'') AS visibility_answer,
|
||||
|
||||
CASE
|
||||
WHEN TS.Present = 0 THEN ''
|
||||
ELSE
|
||||
CASE
|
||||
WHEN ISNULL(SHI.VisibilityImage1,'') = ''
|
||||
THEN ''
|
||||
ELSE
|
||||
'https://kimt1.parinaam.in/Upload/PaidVisibilityImages/'
|
||||
+ SHI.VisibilityImage1
|
||||
END
|
||||
END AS image1,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(SHI.VisibilityImage2,'') = ''
|
||||
THEN ''
|
||||
ELSE
|
||||
'https://kimt.parinaam.in/Upload/PaidVisibilityImages/'
|
||||
+ SHI.VisibilityImage2
|
||||
END AS image2
|
||||
|
||||
FROM OneApp_KelloggsMT.dbo.T_Visibility TS WITH (NOLOCK)
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.T_StoreCoverage SC
|
||||
ON TS.MID = SC.MID
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_StoreDetail SM
|
||||
ON SC.StoreId = SM.StoreId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.vw_Employee_Detail EM
|
||||
ON SC.EmpId = EM.EmpId
|
||||
|
||||
INNER JOIN OneApp_KelloggsMT.dbo.Master_VisibilityDefinition MSD
|
||||
ON MSD.VisibilityDefinitionId = TS.VisibilityDefinitionId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_Visibility MV
|
||||
ON TS.VisibilityId = MV.VisibilityId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_VisibilityImages SHI
|
||||
ON TS.VId = SHI.VId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_VisibilityReason MNP
|
||||
ON TS.VisibilityReasonId = MNP.VisibilityReasonId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_VisibilityStock TVS
|
||||
ON TS.VId = TVS.VId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.T_VisibilityQuestion TVQ
|
||||
ON TS.VId = TVQ.VId
|
||||
|
||||
LEFT JOIN OneApp_KelloggsMT.dbo.Master_VisibilityQuestion MVQ
|
||||
ON TVQ.VisibilityQuestionId = MVQ.VisibilityQuestionId
|
||||
|
||||
WHERE EM.EmpName NOT LIKE 'test%'
|
||||
AND SC.MID IN ({mid_list})
|
||||
"""
|
||||
|
||||
log.info(
|
||||
f"Fetching Paid Visibility data for {len(mids):,} MIDs"
|
||||
)
|
||||
|
||||
df = pl.read_database(
|
||||
query=sql,
|
||||
connection=engine
|
||||
)
|
||||
|
||||
log.info(
|
||||
f"Fetched {len(df):,} Paid Visibility records"
|
||||
)
|
||||
|
||||
return df
|
||||
Reference in New Issue
Block a user