MySQL 查询帮助 - 库存系统

标签 mysql sql

我花了很长时间才弄清楚如何编写这个查询,我希望有人能给我指出正确的方向。

我有一个管理 Assets 的系统,有两个与这个问题相关的表。 item,对于所持有的每个 Assets 都有一个记录,然后是 item_activity,每次将项目 checkin 或 checkout 存储区域时都会存储一条记录。

我需要生成一份在某个日期范围内任何时间点保存的项目的报告(即我们的存储在一年内看到了多少个项目)。换句话说,我需要查看一年内存储在仓库中的所有项目,无论它们在那里存在多长时间(状态为“已 checkin ”)。查看我的事件表并查找某个日期范围内的签到状态很容易。我遇到的问题是捕获在我的日期范围开始之前 checkin 的项目,并且在那一年中根本没有移动。

这是我的架构

项目

  • id(主键)
  • 制作
  • 型号
  • 序列号
  • 类型
  • 值(value)
  • 等等...

item_activity

  • activity_id
  • item_id(与项目表相关)
  • 状态(已 checkin 、已 checkout 、已分配等)
  • 时间戳
  • 用户
  • 注释

我确信以前有人遇到过这种情况,但我似乎找不到任何以前的问题,或者可能不知道用来定位问题的正确词语。感谢您的帮助!我对 SQL 很陌生。

最佳答案

所有事件......

SELECT * 
FROM Item_Activity A
INNER JOIN Item I ON I.id = A.Item_ID
WHERE
   A.timestamp BETWEEN @YourStartDate AND @YourEndDate;

在指定的 2 个日期之间有事件的所有项目......

SELECT I.* 
FROM Item I
INNER JOIN Item_Activity A ON I.id = A.Item_ID
WHERE
   A.timestamp BETWEEN @YourStartDate AND @YourEndDate;

关于MySQL 查询帮助 - 库存系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856979/

相关文章:

MySQL创建表和更改(添加)表查询

mysql - 我似乎无法获得正确的 mysql 命令来将两个表插入到第三个表中

sql - 有没有办法在 excel 中执行交叉连接或笛卡尔积?

mysql - SQL 用户 ID 自动递增

mysql - 如何在sql中将两行中的某些属性合并为一行?

php - 最快的 MYSQL SELECT 查询与 JOINS(连接本身)

mysql - 获取前 3 个字母数字字符(仅限数字或字母)

sql - 如何创建一个已经安装了 hstore 扩展的新数据库?

sql - 如何合并空字符串和 NULL 值?

mysql - 执行sql server插入,但如果发现重复则执行更新