gpt4 book ai didi

php - 从表中选择 *,其中日期 = 本周,以及?

转载 作者:行者123 更新时间:2023-11-29 10:47:57 24 4
gpt4 key购买 nike

我有一个使用 Monaca/Onsen UI 和 AngularJS 构建的跨平台企业应用程序,允许用户提交有关他们在一周内使用的机器的每周报告。检查包括各种安全检查,例如机器当前运行时间、安全装置等。

应用程序的这一部分运行完美,用户可以通过专用平板电脑和智能手机提交每周报告。

每周报告数据发送到 SQL 数据库,我有一个基于 Sximo Builder 构建的 CMS使用 Laravel 框架并托管在 AWS 上。管理员用户使用提交的报告数据来查看报告并确保每周提交所有机器的所有报告。

我需要一个查询,管理员用户可以通过该查询快速筛选针对任何给定周数提交的NO报告的所有机器。

但是由于我的表格只包含已提交的报告,我如何检查哪些机器尚未提交?

我提交的报告的表格如下所示,其中包含一些虚拟数据。

列:ID、名称、机器 ID、小时、已提交、日期、星期,值为 175、Jane Doe、H93、2600、True、03/05/2017 15: 36, 21

我还有一个如下所示的机械表,其中仅包含机械详细信息。

列:ID、机器 ID、品牌、型号,值为 1、H93、Ricoh、H1254

如何向管理员用户显示提交报告的任意指定周内的机器列表。

最佳答案

您可以将报告表与机器表连接起来。
并加入机器 ID 和周数。
如果没有匹配,则报告 ID 将为空。

例如:

一些测试数据:

drop table if exists machineryreport;
create table machineryreport (ID int, NAME varchar(30), `MACHINE ID` varchar(4), HOURS int, SUBMITTED BOOLEAN, `DATE` date, `WEEK NO` int);
insert into machineryreport (ID, NAME, `MACHINE ID`, HOURS, SUBMITTED, `DATE`, `WEEK NO`) values
(175, 'John Doe', 'H92', 2600, True, '2017-03-05 15:36', 21),
(176, 'Jane Doe', 'H93', 2700, True, '2017-03-05 15:38', 21),
(177, 'Jake Doe', 'H95', 2900, True, '2017-03-06 15:42', 21);

drop table if exists machinery;
create table machinery (ID int, `MACHINE ID` varchar(4), MAKE varchar(30), MODEL varchar(8));
insert into machinery (ID, `MACHINE ID`, MAKE, MODEL) values
(1,'H92','Alderado','H1254'),
(2,'H93','Ricoh','H1254'),
(3,'H94','Consuela','H1254'),
(4,'H95','Josep','H1254');

使用左连接:

select m.* 
from machinery m
left join machineryreport r
on (m.`MACHINE ID` = r.`MACHINE ID` and
r.`WEEK NO` = 21)
where r.ID is null;

或者在子查询上使用 NOT IN:

select * 
from machinery
where `MACHINE ID` not in (
select distinct `MACHINE ID`
from machineryreport
where `WEEK NO` = 21
);

或者使用 NOT EXISTS:

select * 
from machinery m
where not exists (
select 1
from machineryreport r
where m.`MACHINE ID` = r.`MACHINE ID`
and r.`WEEK NO` = 21
);

返回:

ID MACHINE ID MAKE     MODEL
-- ---------- ---- -----
3 H94 Consuela H1254

关于php - 从表中选择 *,其中日期 = 本周,以及?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44239872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com