Files
dashlibstorage/src/providers/mssql/queries/attributevalue.js
2026-10-11 18:55:08 +02:00

78 lines
1.8 KiB
JavaScript

export const LIST_BY_ATTRIBUTE_ID = `
SELECT
av.id,
av.attribute_id AS attributeId,
av.value,
av.sort,
(
SELECT COUNT(DISTINCT aav.article_id)
FROM articleattributevalue aav
INNER JOIN article a ON a.id = aav.article_id
WHERE aav.attributevalue_id = av.id
AND a.company_id = an.company_id
) AS articleCount
FROM attributevalue av
INNER JOIN attributename an ON an.id = av.attribute_id
WHERE av.attribute_id = @attributeId AND an.company_id = @companyId
ORDER BY av.sort ASC, av.id ASC
`;
export const LIST_IDS_BY_ATTRIBUTE_ID = `
SELECT av.id
FROM attributevalue av
INNER JOIN attributename an ON an.id = av.attribute_id
WHERE av.attribute_id = @attributeId AND an.company_id = @companyId
ORDER BY av.sort ASC, av.id ASC
`;
export const GET_BY_ID_AND_COMPANY = `
SELECT
av.id,
av.attribute_id AS attributeId,
av.value,
av.sort,
an.company_id AS companyId
FROM attributevalue av
INNER JOIN attributename an ON an.id = av.attribute_id
WHERE av.id = @id AND an.company_id = @companyId
`;
export const GET_BY_ATTRIBUTE_AND_VALUE = `
SELECT
av.id,
av.attribute_id AS attributeId,
av.value,
av.sort
FROM attributevalue av
WHERE av.attribute_id = @attributeId AND av.value = @value
`;
export const GET_NEXT_SORT = `
SELECT ISNULL(MAX(sort), -1) + 1 AS sort
FROM attributevalue
WHERE attribute_id = @attributeId
`;
export const CREATE = `
INSERT INTO attributevalue (attribute_id, value, sort)
OUTPUT INSERTED.id, INSERTED.attribute_id AS attributeId, INSERTED.value, INSERTED.sort
VALUES (@attributeId, @value, @sort)
`;
export const UPDATE_BY_ID = `
UPDATE attributevalue
SET value = @value, sort = @sort
WHERE id = @id
`;
export const UPDATE_SORT = `
UPDATE attributevalue
SET sort = @sort
WHERE id = @id
`;
export const DELETE_BY_ID = `
DELETE FROM attributevalue
WHERE id = @id
`;