Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added optional filter by year into script (it's commented out)

...

Expand
titlesql select statement
Code Block
languagesql
 -- Time: 9/14/2023 7:16:31 PM
 -- IMPLADC-222
SELECT P.PIN,
       P.NAME               AS NAME,
       p03.DATEFROM as         AS 'ACTIVITY DATE FROM',
       p03.DATETO as          AS 'ACTIVITY DATE TO',
       p03.code             AS ACTIVITY,
       orgpos.name          AS POSITION,
       ISNULL(pos.mbr1, 0)  AS 'MINIMUM SAFE MANNING',
       CASEdep.[NAME]             WHEN CHARINDEX ('.'AS DEPARTMENT,
dep.name  ) > 0 THEN  SUBSTRING(depves.name, 5, LEN(dep.name) - 4)         AS VESSEL,
 ELSE dep.name     --CONVERT(DATETIME, CONVERT(VARCHAR,  ENDCheckDate.Onboard, 112)) AS DEPARTMENT'ONBOARD ON',
       vesCheckDate.nameOnboard AS 'ONBOARD VESSELON',
       CONVERT(DATETIME, CONVERT(VARCHAR, CheckDate.Onboard, 112)) AS 'ONBOARD ON',1                   1 AS 'CREW COUNT',
       P.CLIENT                NUMORGID,
       P.EMPLOYMENTSTARTDATE,
       P.EMPLOYMENTENDDATE
FROM   PW001P01             AS P
       JOIN PW001P03        AS P03
            ON  P.PIN = P03.PIN
       JOIN PW001C12        AS C12
            ON  P03.CODE = C12.CODE
            AND C12.OPTIONS LIKE '%S%'
       JOIN (
                SELECT DISTINCT DATEADD(DAY, Number, DATEFROM) AS Onboard
            DATEADD(d, day, DATEADD(day, -60, CONVERT(VARCHAR, GETDATE(), 112))) AS Onboard    FROM   PWROT_ACTIVE_SHIFT
                       CROSS APPLY (
                    SELECT TOP(DATEDIFF(DAY, DATEFROM, DATETO) + 1)
                           ROW_NUMBER() OVER(
                               FROM(ORDER BY(
                                   SELECT DISTINCT NULL
                               )
                         id % 365) +- 1        AS dayNumber
                    FROM sysobjects)AS a)AS CheckDate   sys.columns  AS c1
                           CROSS JOIN sys.columns AS c2
                ) AS a
                WHERE  DATEFROM <= DATETO
            )               AS CheckDate
            ON  p03.datefrom <= CheckDate.Onboard
            AND ISNULL(p03.dateto, CheckDate.Onboard) >= CheckDate.Onboard
            AND CheckDate.Onboard <= DATEADD(dayDAY, 60, CONVERT(VARCHAR, GETDATE(), 112))
       LEFT JOIN PWORG AS orgpos (
                SELECT NUMORGID,
                       dbo.ad_scanorgtree(NUMORGID, 3) AS VesselID,
                      ON dbo.ad_scanorgtree(p03.numorgid, 5) = orgposNUMORGID, 4) AS DepID
                FROM   pworg
            ) ou
            ON  ou.NUMORGID = p03.NUMORGID
       LEFT JOIN PWORG      AS orgpos
            ON  orgpos.NUMORGID = p03.NUMORGID
       LEFT JOIN PWORGPOS   AS pos
            ON  pos.NUMORGID = orgpos.NUMORGID
       LEFT JOIN PW001C02   AS C02
            ON  dbo.ad_orgPosC02Code(orgpos.orgcode) = c02.code
       LEFT JOIN PWORG      AS DEP
            ON  dbo.ad_scanorgtree(p03.numorgid, 4) = DEP.NUMORGIDDEP.NUMORGID = ou.DepID
       LEFT JOIN PWORG      AS VES
            ON dbo.ad_scanorgtree(p03.numorgid, 3) = VES.NUMORGID
  VES.NUMORGID = ou.VesselID
--to generate only for the current year enable line below
--where Year(CheckDate.Onboard) = Year(Getdate())

Fields Definition

...

View Configuration (Column/Raw/Data Fields)

...

Rows/ Columns Specification

Row/Column

Description/ Location in APM

PIN

PIN (should be hidden)

Name

The full name of the person.

NUMORGID

Vessel Organization ID (should be hidden)

EmploymentStartDate

Employment Start Date (can be hidden)

EmploymentEndDate

Employment End Date (can be hidden)

Vessel

Onboard Activity Vessel name

Department

Onboard Activity Department name

Position

Onboard Activity Position

Onboard On

The date when the crew are onboard.

Required Manning

The number of Position according to Company requirements: Organization > Position > Min Safe Manning

Crew Count

Total number of the crew that have Onboard Activities on the specific date.