Mijn vraag
Een collega en mijzelf hebben een Query geschreven voor een automatisch raport/tabel dat wij versturen vanaf de server naar Email via ons framework.
Waar de Functie FRIDAY is om het aantal dagen met een marketing status het aantal dagen aangeeft.
Hoe lang heeft de persoon deze status?
Relevante software en hardware die ik gebruik
PG admin 4
Wat ik al gevonden of geprobeerd heb:
Ik krijg:
ERROR: invalid input syntax for type date: '{{FRIDAY}}'
LINE 21: WHERE h2.change_date < (date('{{FRIDAY}}') + interval '1 ...
SQL state: 22007 ( An invalid datetime format was detected; that is, an invalid string representation or value was specified.)
Google leert mij (https://stackoverflow.com...3/invalid-datetime-format) en (https://www.postgresqltut.../postgresql-to_timestamp/) hoe ik dit zou kunnen oplossen, maar zou 1 van de twee redenenen waar kunnen zijn?
Mis ik gewoon ergens wat of een character ergens te veel.
OF
Kan het zijn dat ik een DATE en een String probeer te filteren?
Een collega en mijzelf hebben een Query geschreven voor een automatisch raport/tabel dat wij versturen vanaf de server naar Email via ons framework.
Waar de Functie FRIDAY is om het aantal dagen met een marketing status het aantal dagen aangeeft.
Hoe lang heeft de persoon deze status?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| SELECT
b.marketingname AS "FE Name",
c.employee_number AS "Paycor ID",
techmap.exp AS "Technology",
d.firstname || ' ' || d.lastname AS "FEM",
e.firstname || ' ' || e.lastname AS "PS",
f.firstname || ' ' || f.lastname AS "SME Trainer",
(select count(*) from submissions subs2
WHERE subs2.submissiondate between
(date('{{FRIDAY}}') - interval '6 days') and '{{FRIDAY}}'
AND subs2.marketingprofile_id = b.pk_marketingprofile
AND subs2.status = 'ACTIVE'
) AS "Submissions"
FROM marketingprofiles b
INNER JOIN (SELECT h.marketingprofile_id, h.changed
FROM history h
JOIN (
SELECT marketingprofile_id, max(change_date) AS maxCD,
max(pk_history_id) AS maxHistoryID
FROM history h2
WHERE h2.change_date < (date('{{FRIDAY}}') + interval '1 days')
AND h2.fieldname = 'marketingstatus'
GROUP BY marketingprofile_id)
h2 ON h2.marketingprofile_id = h.marketingprofile_id
WHERE h.change_date = h2.maxCD AND h.pk_history_id = maxHistoryID
GROUP BY h.marketingprofile_id, h.changed)
h ON h.marketingprofile_id = b.pk_marketingprofile
JOIN employees c ON b.fe_id = c.pk_employee_id
AND NOT
(c.terminationdate is not null and lifecycle_status = 'TERMINATED' and
c.terminationdate <= '{{FRIDAY}}')
JOIN employees d ON c.manager_id = d.pk_employee_id
JOIN employees e ON b.ps_id = e.pk_employee_id
LEFT OUTER JOIN employees f ON c.trainer_id = f.pk_employee_id
JOIN (values ('DS','Data Science'), ('BD','Big Data'),
('AN','Android'), ('IOS','iPhone iOS'), ('CS','Cyber Security'),
('AWS','Amazon Web Services'), ('AZ','Azure'),
('EX','O365/Exchange'), ('O365','O365/Exchange'),
('SP','Sharepoint')
)
AS techmap(abbr,exp) ON b.technology = techmap.abbr
WHERE
h.changed = 'MARKETING'
-- OR NOT (c.lifecycle_status='ON-PROJECT' -- ARGHH
-- and b.marketingstatus='INACTIVE'))
AND (select count(*) from submissions subs
WHERE subs.submissiondate between
(date('{{FRIDAY}}') - interval '6 days') and '{{FRIDAY}}'
AND subs.marketingprofile_id = b.pk_marketingprofile
-- AND subs.status = 'ACTIVE'
) < 6
-- AND b.pk_marketingprofile=41724
-- AND b.marketingstatus = 'MARKETING'
GROUP BY "FE Name","Paycor ID","Technology","FEM","PS","SME Trainer",
b.pk_marketingprofile
HAVING count(*) < 6
ORDER BY "FE Name" |
Relevante software en hardware die ik gebruik
PG admin 4
Wat ik al gevonden of geprobeerd heb:
Ik krijg:
ERROR: invalid input syntax for type date: '{{FRIDAY}}'
LINE 21: WHERE h2.change_date < (date('{{FRIDAY}}') + interval '1 ...
SQL state: 22007 ( An invalid datetime format was detected; that is, an invalid string representation or value was specified.)
Google leert mij (https://stackoverflow.com...3/invalid-datetime-format) en (https://www.postgresqltut.../postgresql-to_timestamp/) hoe ik dit zou kunnen oplossen, maar zou 1 van de twee redenenen waar kunnen zijn?
Mis ik gewoon ergens wat of een character ergens te veel.
OF
Kan het zijn dat ik een DATE en een String probeer te filteren?
[ Voor 2% gewijzigd door Sr Juan op 01-02-2023 18:32 . Reden: extra informatie ]
El trago de mezcal, como lo senos de las mujeres, uno es insuficiente, tres son demasiados