Untitled
unknown
plain_text
a year ago
6.4 kB
8
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 notEditor is loading...
Leave a Comment