I have two tables:
Table0:
| ID | TYPE | TIME  | SITE |
|----|------|-------|------|
| aa | 1    | 12-18 | 100  |
| aa | 1    | 12-10 | 101  |
| bb | 2    | 12-10 | 102  |
| cc | 1    | 12-09 | 100  |
| cc | 2    | 12-12 | 103  |
| cc | 2    | 12-01 | 109  |
| cc | 1    | 12-07 | 101  |
| dd | 1    | 12-08 | 100  |
and
Table1:
| ID |
|----|
| aa |
| cc |
| cc |
| dd |
| dd |
I'm trying to output results where:
- IDmust exist in both tables.
- TYPEmust be the maximum for each- ID.
- TIMEmust be the minimum value for the maximum- TYPEfor each- ID.
- SITEshould be the value from the same row as the minimum- TIMEvalue.
Given my sample data, my results should look like this:
| ID | TYPE | TIME  | SITE |
|----|------|-------|------|
| aa | 1    | 12-10 | 101  |
| cc | 2    | 12-01 | 109  |
| dd | 1    | 12-08 | 100  |
I've tried these statements:
INSERT INTO "NuTable"
SELECT DISTINCT(QTS."ID"), "SITE",
       CASE WHEN MAS.MAB=1 THEN 'B'
            WHEN MAS.MAB=2 THEN 'F'
            ELSE NULL END,
       "TIME"
FROM (SELECT DISTINCT("ID") FROM TABLE1) AS QTS,
     TABLE0 AS MA,
     (SELECT "ID", MAX("TYPE") AS MASTY, MIN("TIME") AS MASTM 
      FROM TABLE0 
      GROUP BY "ID") AS MAS,
WHERE QTS."ID" = MA."ID"
      AND QTS."ID" = MAS."ID"
      AND MSD.MASTY  =MA."TYPE"
...which generates a syntax error
INSERT INTO "NuTable"
SELECT DISTINCT(QTS."ID"), "SITE",
       CASE WHEN MAS.MAB=1 THEN 'B'
            WHEN MAS.MAB=2 THEN 'F'
            ELSE NULL END,
       "TIME"
FROM (SELECT DISTINCT("ID") FROM TABLE1) AS QTS,
     TABLE0 AS MA,
     (SELECT "ID", MAX("TYPE") AS MAB 
      FROM TABLE0 
      GROUP BY "ID") AS MAS,
     ((SELECT "ID", MIN("TIME") AS MACTM, MIN("TYPE") AS MACTY 
       FROM TABLE0 
       WHERE "TYPE" = 1 
       GROUP BY "ID")  
      UNION
      (SELECT "ID", MIN("TIME"), MAX("TYPE") 
       FROM TABLE0 
       WHERE "TYPE" = 2 
       GROUP BY "ID")) AS MACU 
WHERE QTS."ID" = MA."ID"
      AND QTS."ID" = MAS."ID"
      AND MACU."ID" = QTS."ID"
      AND MA."TIME" = MACU.MACTM
      AND MA."TYPE" = MACU.MACTB
... which is getting the wrong results.
 
     
     
     
    