У меня есть система RFID, которая записывает входящие теги и выходящие теги.
Запись каждого тега в таблицу (транзакции). В таблице заголовков (action_headers) есть информация о том, входит или выходит инвентарь. Я буду использовать первые 8 символов в качестве префикса для идентификации инвентаря. Тогда я хочу посчитать, что входит и выходит. Добавьте в инвентарь то, что входит, и вычтите то, что выходит.
Я начал с этого SQL, чтобы подсчитать, что входит и выходит. Как бы я использовал это, чтобы получить полный инвентарь? И как хранить эти данные.
SELECT Left(encoded_value,8) AS Itemnumber
,Count(transactions.encoded_value) AS CountOfencoded_value
,transaction_headers.loc_id AS Gate
,CASE WHEN transaction_headers.loc_id = 1
THEN Count(transactions.encoded_value) * -1
ELSE Count(transactions.encoded_value)
END AS Inventory
FROM transactions
INNER JOIN transaction_headers ON transactions.id = transaction_headers.id
GROUP BY Left(encoded_value,8), transaction_headers.loc_id
HAVING (((Left(encoded_value,8)) Like 'CCE1%') AND ((transaction_headers.loc_id) Is Not Null));
Таблица транзакций
id transaction_header_id encoded_value
107039 6294 CCE1C0360000000017120ACA
107038 6294 CCE1C0360000000017120A8F
107037 6294 CCE1C0360000000017120418
107036 6294 CCE1C0360000000017120B5F
107035 6294 CCE1C0360000000018030802
107034 6294 CCE1E5000000000018090041
107033 6294 CCE1C0360000000018061053
106980 6295 CCE1C0360000000017120A8D
106979 6295 CCE1C0360000000018060670
106978 6295 CCE1C0360000000018060996
106977 6295 CCE1E5000000000018080331
таблица заголовков
id loc_id
6295 1
6294 2
Желаемые результаты - что-то вроде
Запас во дворе:
ItemNumber count
CCE1C036 3
CCE1E500 0
У нас будут тысячи транзакций в день и около 50 инвентарных кодов