SELECT ProgramId,
Subject,
StatusDate
FROM
(
SELECT programs.Id AS ProgramId,
subjects.Name AS Subject,
status.Date AS StatusDate,
status.Id AS StatusId,
ROW_NUMBER() OVER(PARTITION BY programs.Id ORDER BY status.Date DESC, status.Id DESC) AS rn
FROM programs
INNER JOIN status
ON programs.Id=status.ProgramId
INNER JOIN subjects
ON programs.SubjectId=subjects.Id
) AS t1
WHERE rn=1
AND StatusId=3 -- 3 - айдишка статуса 'заблокировано' в справочнике статусов
ORDER BY StatusDate DESC
SELECT *
FROM
(
SELECT REGEXP_SUBSTR(listinfo, ';[^;]+') as list
FROM import
) AS i
JOIN lists as l
ON l.listid = list
WHERE i.userid = 1
SELECT *
FROM table
WHERE text LIKE '%555%'
AND NOT (
text LIKE '%5550%'
OR text LIKE '%5551%'
OR text LIKE '%5552%'
OR text LIKE '%5553%'
OR text LIKE '%5554%'
OR text LIKE '%5555%'
OR text LIKE '%5557%'
OR text LIKE '%5557%'
OR text LIKE '%5558%'
OR text LIKE '%5559%'
)
["]lastPrice["]:([0-9]+)(([.]([0-9]+))?), только с экранированием кавычек
-- Пишем телефоны в пустые значения
UPDATE table AS t1
SET t1.Phone=t2.Phone
FROM table AS t1
INNER JOIN table AS t2
ON t1.FIO=t2.FIO
AND t1.phone IS NULL
AND t2.phone IS NOT NULL
-- Удаляем лишнее
DELETE
FROM table
WHERE Id NOT IN
(
SELECT Id
FROM
(
SELECT MAX(Id) AS id, FIO, Phone
FROM table
GROUP BY FIO,
Phone
) AS t1
)
SELECT (CASE
WHEN stat=0
THEN 'работа не начата'
WHEN stat=1
THEN 'работа идет'
WHEN stat=2
THEN 'работа выполнена'
END) AS statStr
FROM table
Или нужно создавать две таблицы - поручения и статусы. И делать запрос на основе этих таблиц?
Работаю не один, никакого вводного брифинга толком не было, а постоянно бегать за помощью считаю очень постыдным занятием, к тому же отвлекающим других от своей работы.