Untitled

 avatar
unknown
plain_text
5 months ago
6.4 kB
2
Indexable
  In python I have created a view named 'mdm_product_view' like:
stmt = (
        info.context.session.query(Product)
        .join(ProductCountry, Product.id == ProductCountry.id)
        .join(UsersCountry, ProductCountry.country_id == UsersCountry.country_id)
        .join(UsersTherapeutic, Product.th_area == UsersTherapeutic.ta_id)
        .join(Therapeutic, Product.th_area == Therapeutic.id)
        .filter(Therapeutic.status_id == 1)
        .filter(UsersCountry.user_id == info.context.current_user.id)
        .filter(UsersTherapeutic.user_id == info.context.current_user.id)
        .filter(Product.is_deleted != 2)
        .filter(
            or_(
                Product.last_active > 0,
                Product.current_record == 1,
                Product.is_deleted == 1,
            )
        )
    )
In SQL I have the view query as:
'mdm_product_view':
-- jsamdm_dev.mdm_product_view source

CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `mdm_product_view` AS
select
    `mp`.`RECORD_ID` AS `RECORD_ID`,
    `mp`.`MDM_ID` AS `MDM_ID`,
    `mp`.`SERIES_ID` AS `SERIES_ID`,
    `mp`.`RELTIO_ID` AS `RELTIO_ID`,
    `mp`.`COUNTRY_ID` AS `COUNTRY_ID`,
    `mp`.`PRODUCT_NAME` AS `PRODUCT_NAME`,
    `mp`.`GROUP_TYPE` AS `GROUP_TYPE`,
    `mp`.`JANSSEN_MSTR_PRDCT_NM` AS `JANSSEN_MSTR_PRDCT_NM`,
    `mp`.`PRODUCT_PHASE` AS `PRODUCT_PHASE`,
    `mp`.`JNJ_FULL_COMPOUND_ID` AS `JNJ_FULL_COMPOUND_ID`,
    `mp`.`GENERIC_NAME` AS `GENERIC_NAME`,
    `mp`.`JNJ_FLAG` AS `JNJ_FLAG`,
    `mp`.`TH_AREA` AS `TH_AREA`,
    `mp`.`PRODUCT_STATUS` AS `PRODUCT_STATUS`,
    `mp`.`REQUEST_STATUS_ID` AS `REQUEST_STATUS_ID`,
    `mp`.`TA_SUB_TYPE` AS `TA_SUB_TYPE`,
    `mp`.`CURRENT_RECORD` AS `CURRENT_RECORD`,
    `mp`.`LAST_ACTIVE` AS `LAST_ACTIVE`,
    `mp`.`IS_DELETED` AS `IS_DELETED`,
    `mp`.`CREATED_DATE` AS `CREATED_DATE`,
    `mp`.`CREATED_BY_ID` AS `CREATED_BY_ID`,
    `mp`.`UPDATED_DATE` AS `UPDATED_DATE`,
    `mp`.`UPDATED_BY_ID` AS `UPDATED_BY_ID`,
    if((`mp`.`IS_DELETED` > 0),
    'Soft-Deleted',
    'In-Force') AS `DELETE_STATE`,
    `mt`.`TA_NAME` AS `TA_NAME`,
    `mc`.`COUNTRY_NAME` AS `COUNTRY_NAME`,
    `mr`.`REGION_ID` AS `REGION_ID`,
    `mr`.`REGION_NAME` AS `REGION_NAME`,
    `ms`.`STATUS_DESC` AS `REQUEST_STATUS`,
    `mpfv`.`RECORD_ID_2` AS `RECORD_ID_2`,
    `mpfv`.`COMARKETING_PARTNER` AS `COMARKETING_PARTNER`,
    `mpfv`.`MARKETED_BY` AS `MARKETED_BY`,
    `mpfv`.`JJ_OPERATING_COMPANY` AS `JJ_OPERATING_COMPANY`,
    `mpfv`.`AESPQCS_BE_REPORTED` AS `AESPQCS_BE_REPORTED`,
    `mpfv`.`BLACKBOX_WARNING` AS `BLACKBOX_WARNING`,
    `mpfv`.`PI_LINK` AS `PI_LINK`,
    `mpfv`.`FIELD_TEAM_BE_SUBMITTING_MIRS_ON_THIS_PRODUCT` AS `FIELD_TEAM_BE_SUBMITTING_MIRS_ON_THIS_PRODUCT`,
    `mpfv`.`COMMENTS` AS `COMMENTS`,
    `mpfv`.`IS_IT_TRADEMARK_OR_REGISTERED` AS `IS_IT_TRADEMARK_OR_REGISTERED`,
    `mpfv`.`BRAND_STRENGTH` AS `BRAND_STRENGTH`,
    `mpfv`.`INDICATION` AS `INDICATION`,
    `mpfv`.`FDA_APPROVED` AS `FDA_APPROVED`,
    `mpfv`.`QUADRANT` AS `QUADRANT`,
    `mpfv`.`WEBSITE_PRODUCT_NAME` AS `WEBSITE_PRODUCT_NAME`,
    `mpfv`.`ANALYTICS_DISPLAY_NAME` AS `ANALYTICS_DISPLAY_NAME`
from
    ((((((`mdm_product` `mp`
join `mdm_status` `ms` on
    ((`mp`.`REQUEST_STATUS_ID` = `ms`.`STATUS_ID`)))
left join `mdm_product_field_view` `mpfv` on
    ((`mp`.`RECORD_ID` = `mpfv`.`RECORD_ID_2`)))
left join `mdm_countries` `mc` on
    ((`mc`.`COUNTRY_ID` = `mp`.`COUNTRY_ID`)))
left join `mdm_region_countries` `mrc` on
    ((`mrc`.`COUNTRY_ID` = `mc`.`COUNTRY_ID`)))
left join `mdm_regions` `mr` on
    ((`mr`.`REGION_ID` = `mrc`.`REGION_ID`)))
left join `mdm_therapeutic` `mt` on
    (((`mt`.`TA_ID` = `mp`.`TH_AREA`)
        and (`mt`.`STATUS_ID` = 1))))
where
    (((`mp`.`LAST_ACTIVE` > 0)
        or (`mp`.`CURRENT_RECORD` = 1)
            or (`mp`.`IS_DELETED` = 1))
        and (`mp`.`IS_DELETED` <> 2));
'mdm_product_field_view':
-- jsamdm_dev.mdm_product_field_view source

CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `mdm_product_field_view` AS
select
    `pf`.`RECORD_ID_2` AS `RECORD_ID_2`,
    max(if((`pf`.`FIELD_NAME` = 'COMARKETING_PARTNER'), `pf`.`FIELD_VALUE`, NULL)) AS `COMARKETING_PARTNER`,
    max(if((`pf`.`FIELD_NAME` = 'MARKETED_BY'), `pf`.`FIELD_VALUE`, NULL)) AS `MARKETED_BY`,
    max(if((`pf`.`FIELD_NAME` = 'JJ_OPERATING_COMPANY'), `pf`.`FIELD_VALUE`, NULL)) AS `JJ_OPERATING_COMPANY`,
    max(if((`pf`.`FIELD_NAME` = 'AESPQCS_BE_REPORTED'), `pf`.`FIELD_VALUE`, NULL)) AS `AESPQCS_BE_REPORTED`,
    max(if((`pf`.`FIELD_NAME` = 'BLACKBOX_WARNING'), `pf`.`FIELD_VALUE`, NULL)) AS `BLACKBOX_WARNING`,
    max(if((`pf`.`FIELD_NAME` = 'PI_LINK'), `pf`.`FIELD_VALUE`, NULL)) AS `PI_LINK`,
    max(if((`pf`.`FIELD_NAME` = 'FIELD_TEAM_BE_SUBMITTING_MIRS_ON_THIS_PRODUCT'), `pf`.`FIELD_VALUE`, NULL)) AS `FIELD_TEAM_BE_SUBMITTING_MIRS_ON_THIS_PRODUCT`,
    max(if((`pf`.`FIELD_NAME` = 'COMMENTS'), `pf`.`FIELD_VALUE`, NULL)) AS `COMMENTS`,
    max(if((`pf`.`FIELD_NAME` = 'IS_IT_TRADEMARK_OR_REGISTERED'), `pf`.`FIELD_VALUE`, NULL)) AS `IS_IT_TRADEMARK_OR_REGISTERED`,
    max(if((`pf`.`FIELD_NAME` = 'BRAND_STRENGTH'), `pf`.`FIELD_VALUE`, NULL)) AS `BRAND_STRENGTH`,
    max(if((`pf`.`FIELD_NAME` = 'INDICATION'), `pf`.`FIELD_VALUE`, NULL)) AS `INDICATION`,
    max(if((`pf`.`FIELD_NAME` = 'FDA_APPROVED'), `pf`.`FIELD_VALUE`, NULL)) AS `FDA_APPROVED`,
    max(if((`pf`.`FIELD_NAME` = 'QUADRANT'), `pf`.`FIELD_VALUE`, NULL)) AS `QUADRANT`,
    max(if((`pf`.`FIELD_NAME` = 'WEBSITE_PRODUCT_NAME'), `pf`.`FIELD_VALUE`, NULL)) AS `WEBSITE_PRODUCT_NAME`,
    max(if((`pf`.`FIELD_NAME` = 'ANALYTICS_DISPLAY_NAME'), `pf`.`FIELD_VALUE`, NULL)) AS `ANALYTICS_DISPLAY_NAME`
from
    `mdm_field_view` `pf`
where
    (`pf`.`RECORD_ID_2` is not null)
group by
    `pf`.`RECORD_ID_2`;
'mdm_field_view':
-- jsamdm_dev.mdm_field_view source

CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `mdm_field_view` AS
select
    `mpf`.`RECORD_ID` AS `RECORD_ID_2`,
    `mfd`.`FIELD_NAME` AS `FIELD_NAME`,
    `mpf`.`FIELD_VALUE` AS `FIELD_VALUE`
from
    (`mdm_field_details` `mfd`
left join `mdm_product_field` `mpf` on
    ((`mfd`.`FIELD_ID` = `mpf`.`FIELD_ID`)))
where
    ((`mfd`.`IS_DYNAMIC` = 'Y')
        and (`mfd`.`IS_ACTIVE` = 'Y')
            and (`mfd`.`IS_DELETED` = '0'));
Analyze and let me know if the python query is correct or not
Editor is loading...
Leave a Comment