我有一个包含 2 个表的数据库。
+--------------+--------+
| project_name | Active |
+--------------+--------+
| A | Yes |
| B | No |
| C | Yes |
| D | Yes |
+--------------+--------+
+---------+-----------------+------------------------------+
| project | inspection_date | Type_of_Inspection |
+---------+-----------------+------------------------------+
| A | 2019-08-20 | Supervisor Weekly Inspection |
| D | 2019-08-20 | Supervisor Weekly Inspection |
| D | 2019-08-21 | Supervisor Weekly Inspection |
| A | 2019-08-22 | Supervisor Weekly Inspection |
+---------+-----------------+------------------------------+
project_name 来自 Projects 表 = project 来自 form-site_safety_inspection 表。
定期将新行添加到 form-site_safety_inspection。我需要每周计算事件项目向 form-site_safety_inspection 添加了多少行。如果那一周没有事件项目添加的行,我需要计数 0。
到目前为止,我编写了一个查询,该查询对事件项目添加的 form-site_safety_inspection 中的行进行计数。如果事件项目没有提交任何行,我会遗漏显示计数为 0 的代码部分。
SELECT COUNT(*), project
FROM form-site_safety_inspection
LEFT JOIN projects ON form-site_safety_inspection.project = Projects.project_name
WHERE form-site_safety_inspection.Type_of_Inspection= "Supervisor Weekly Inspection"
AND Projects.Active = "Yes"
AND year(inspection_date) = year(curdate())
AND month(inspection_date) = month(curdate())
AND week(inspection_date) = week(curdate())
GROUP BY form-site_safety_inspection.project
ORDER BY form-site_safety_inspection.project
使用上面的代码我得到了结果:
+----------+---------+
| COUNT(*) | project |
+----------+---------+
| 2 | A |
| 2 | D |
+----------+---------+
我正在寻找以下结果:
+----------+---------+
| COUNT(*) | project |
+----------+---------+
| 2 | A |
| 0 | C |
| 2 | D |
+----------+---------+
最佳答案
您的左连接方法是正确的,只是对日期的限制需要出现在连接的 ON 子句中,而不是出现在 WHERE 子句中,因为您不希望他们过滤掉任何项目。请注意,Active 的限制可以出现在WHERE 子句中,因为您不希望看到任何非事件项目。
SELECT
p.project_name,
COUNT(f.project) AS cnt
FROM Projects p
LEFT JOIN `form-site_safety_inspection` f
ON p.project_name = f.project AND
YEARWEEK(inspection_date, 1) = YEARWEEK(CURDATE(), 1)
WHERE
p.Active = 'Yes'
GROUP BY
p.project_name;
关于mysql - 如果没有现有记录,则计数为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57610761/
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
尝试在我的RoR应用程序中实现计数器缓存列时出现错误Unknownkey(s):counter_cache。我在这个问题中实现了模型关联:Modelassociationquestion这是我的迁移:classAddVideoVotesCountToVideos0Video.reset_column_informationVideo.find(:all).eachdo|p|p.update_attributes:videos_votes_count,p.video_votes.lengthendenddefself.downremove_column:videos,:video_vot