/
UniSea CrewData_API DB view

UniSea CrewData_API DB view

Summary

The view is used to provide Crew data to UniSea via API calls

Keywords

Crew Data

Category

Database View

Description

The view is used to provide Crew data to UniSea via API calls

Selection

The view shows all the crew existing in the system.

SQL statement

Create View:

CREATE VIEW dbo.CrewData_API AS SELECT P01.PIN, P01.FIRSTNAME, P01.LASTNAME, P01.SEX GENDER, C02.NAME RANK, P01.NATIONALITY, P01.BIRTHDATE, P01.PLACEOFBIRTH, P1P.PASSPORTNO PASSPORTNO, P1P.PASSPORTEXPIRYDATE PASSPORTEXPIRY, P1P.PASSPORTISSUEDATE, P1P.PASSPORTISSUECOUNTRY, P0T.TELENO EMAIL, MOBILE.TELENO MOBILE, CASE WHEN p03.PLANNED <> 'Y' AND p03.DATETO IS NULL THEN 'Y' ELSE 'N' END AS ONBOARD_STATUS, p03.SEQUENCENO ONB_ACTIVITY_SEQUENCENO FROM PW001P01 P01 LEFT JOIN PW001P03 p03Cur ON P01.PIN = p03Cur.PIN AND p03Cur.DATETO IS NULL AND ISNULL(p03Cur.PLANNED, 'N') <> 'Y' AND EXISTS( SELECT 1 FROM PW001C12 t1 WHERE t1.CODE = p03Cur.CODE AND t1.OPTIONS LIKE '%S%' ) LEFT JOIN ( SELECT * FROM ( SELECT pl.PIN, pl.SEQUENCENO, pl.CODE, ROW_NUMBER() OVER(PARTITION BY pl.PIN ORDER BY pl.DATEFROM ASC)Nr FROM pw001p03 pl WHERE pl.DATETO IS NULL AND ISNULL(pl.PLANNED, 'N') = 'Y' AND EXISTS( SELECT 1 FROM PW001C12 t2 WHERE t2.CODE = pl.CODE AND t2.OPTIONS LIKE '%S%' ) )tpl WHERE tpl.Nr = 1 )p03Planned ON p01.pin = p03Planned.PIN LEFT JOIN ( SELECT * FROM ( SELECT lh.PIN, lh.SEQUENCENO, lh.CODE, ROW_NUMBER() OVER(PARTITION BY lh.PIN ORDER BY lh.DATEFROM DESC)Nr FROM pw001p03 lh WHERE lh.DATETO IS NOT NULL AND ISNULL(lh.PLANNED, 'N') <> 'Y' AND EXISTS( SELECT 1 FROM PW001C12 t3 WHERE t3.CODE = lh.CODE AND t3.OPTIONS LIKE '%S%' ) )tlh WHERE tlh.Nr = 1 )p03LatestHistorical ON p01.pin = p03LatestHistorical.PIN JOIN PW001P03 P03 ON p03.SEQUENCENO = ISNULL(ISNULL(ISNULL(p03Cur.SEQUENCENO, p03Planned.SEQUENCENO), p03LatestHistorical.SEQUENCENO),p03Cur.SEQUENCENO) LEFT JOIN PW001C02 C02 ON C02.CODE = P01.RANK LEFT JOIN PW001P1P P1P ON P01.PIN = P1P.PIN AND p1p.code = 'PP' LEFT JOIN PW001P0T P0T ON ( (P01.PIN = P0T.PIN) AND (P0T.TELETYPE = 6) AND (NOT P0T.TELEPRIORITY IS NULL) AND NOT EXISTS ( SELECT SEQUENCENO FROM PW001P0T P0T2 WHERE (P0T.PIN = P0T2.PIN) AND (P0T2.TELETYPE = 6) AND ( (P0T2.TELEPRIORITY < P0T.TELEPRIORITY) OR ( (P0T2.TELEPRIORITY = P0T.TELEPRIORITY) AND (P0T2.SEQUENCENO < P0T.SEQUENCENO) ) ) ) ) LEFT JOIN PW001P0T MOBILE ON ( (P01.PIN = MOBILE.PIN) AND (MOBILE.TELETYPE = 3) AND (NOT MOBILE.TELEPRIORITY IS NULL) AND NOT EXISTS ( SELECT SEQUENCENO FROM PW001P0T MOBILE2 WHERE (MOBILE.PIN = MOBILE2.PIN) AND (MOBILE2.TELETYPE = 3) AND ( (MOBILE2.TELEPRIORITY < MOBILE.TELEPRIORITY) OR ( (MOBILE2.TELEPRIORITY = MOBILE.TELEPRIORITY) AND (MOBILE2.SEQUENCENO < MOBILE.SEQUENCENO) ) ) ) ) --WHERE P01.EMPLOYMENTENDDATE IS NULL OR P01.EMPLOYMENTENDDATE > GETDATE() --when enabled - only for active crew GO

Drop View:

DROP VIEW dbo.CrewData_API GO

 

Related content