... AND (column = {parameter} OR {parameter} IS NULL) ..... AND (column = {parameter} OR FALSE) .. ==> ... AND (column = {parameter}) ..... AND (column = {parameter} OR TRUE) .. ==> ... AND (TRUE) ...SQL = "SELECT * FROM USERS WHERE 1=1 {} LIMIT %s OFFSET %s"AND {условие}WITH
cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY document_id ORDER BY job_id DESC) rn
FROM my_table
)
SELECT document_id, job_id, person_id
FROM cte
WHERE rn = 1;SELECT DISTINCT
document_id,
MAX(job_id) OVER (PARTITION BY document_id) job_id,
FIRST_VALUE(person_id) OVER (PARTITION BY document_id ORDER BY job_id DESC) person_id
FROM my_table если в данной таблице уже существует поле с данным товаром, то прибавить единицу к его количеству
а если его вообще нет, то создать новое поле
Function group_concat(category As String) As String
With CurrentDb.OpenRecordset("SELECT [Цех] FROM [Имя таблицы] WHERE [Продукция] = '" & category & "'")
group_concat = ""
.MoveFirst
While Not .EOF
group_concat = group_concat & "," & ![Цех]
.MoveNext
Wend
.Close
End With
group_concat = Mid(group_concat, 2)
End FunctionSELECT [Продукция], MAX(group_concat([Цех])) AS [Цех]
FROM [Имя таблицы]
GROUP BY [Продукция];SELECT c.name category_name, p.id post_id, p.name post_name, p.title post_title
FROM posts p
JOIN categories c ON p.category_id = c.id
UNION ALL
SELECT name, NULL, NULL, NULL
FROM categories
ORDER BY category_name, post_id IS NOT NULLSELECT
*,
FIRST_VALUE(CASE WHEN banner_id IN (13,14,15,17)
THEN banner_id
END) OVER (PARTITION BY id
ORDER BY CASE WHEN banner_id IN (13,14,15,17)
THEN banner_id
END DESC NULLS LAST) max_banner_id_1,
FIRST_VALUE(CASE WHEN banner_id IN (4,177,178)
THEN banner_id
END) OVER (PARTITION BY id
ORDER BY CASE WHEN banner_id IN (4,177,178)
THEN banner_id
END DESC NULLS LAST) max_banner_id_2
FROM test
ORDER BY banner_id