我已经使用这个网站好几个月了,它对我很有帮助。然而,我终于遇到了一个问题,我一直无法找到如何做的答案。
我的表中大约有 30 列,但我只对其中的 7 列感兴趣。我试图完成的是一个查询,它将返回每个订单的第一个和最后一个选择的日期/时间,但仅针对已完成的订单。
我的 table 看起来像这样:
ordnum | adddte |pckdte |pckqty |appqty | srcloc | ctnnum
-----------+-----------------+------------------+-------+-------+--------+------
ORD123 | 4/20/16 6:31 AM | Null | 1 | 0 | 375 | CTN1
ORD123 | 4/20/16 6:31 AM | 4/20/16 11:39 AM | 2 | 2 | 335 | NULL
ORD123 | 4/20/16 6:31 AM | 4/20/16 11:37 AM | 1 | 1 | 336 | CTN1
ORD456 | 4/20/16 7:11 AM | 4/20/16 11:59 AM | 3 | 3 | 376 | CTN2
ORD456 | 4/20/16 7:11 AM | 4/20/16 11:47 AM | 1 | 1 | 345 | CTN2
ORD456 | 4/20/16 7:11 AM | 4/20/16 11:07 AM | 4 | 4 | 355 | CTN2
请注意,判断订单是否完成的唯一方法是它的每个 appqty 的值都大于 0。它的 pckdte 可以为 null,并且订单仍在完成。
下面是我目前使用的代码,它确实给出了每个订单的开始和停止时间,但也包括尚未完成的订单。
SELECT
ordnum
,max(pckdte) AS "Last Pick"
,min(pckdte) AS "First Pick"
FROM MyTable
Where (adddte >= '2016-04-02 00:00:00' AND pckdte <= '2016-04-20 23:59:59')
and ctnnum like 'c%'
and (srcloc like '2%' or srcloc like '3%' or srcloc like '4%' or srcloc like '5%' or srcloc like '1%')
group by ordnum
order by ordnum
代码给出了这些结果:
ordnum | Last Pick | First Pick
------------+------------------+----------------
ORD123 | 4/20/16 11:39 AM | 4/20/16 11:37 AM
ORD456 | 4/20/16 11:59 AM | 4/20/16 11:07 AM
但是我不想包括 ORD123,因为还有一个未完成的选择 (appqty = 0)。 adddte、srcloc 和 ctnnum 列用于将我部门的订单与其他人的订单分开,因为它们都存储在同一个表中,我的 where 语句中概述的参数是过滤掉我部门工作的唯一方法。
如果您对此问题有任何帮助,我们将不胜感激。如果我需要提供其他信息,请告诉我。
最佳答案
添加一行以确保 ordnum 的 appqty = 0 不存在
SELECT
ordnum
,max(pckdte) AS "Last Pick"
,min(pckdte) AS "First Pick"
FROM MyTable
Where (adddte >= '2016-04-02 00:00:00' AND pckdte <= '2016-04-20 23:59:59')
and ctnnum like 'c%'
and (srcloc like '2%' or srcloc like '3%' or srcloc like '4%' or srcloc like '5%' or srcloc like '1%')
-- line below added
AND NOT EXISTS (SELECT 1 FROM MyTable T2 WHERE appqty = 0 AND T2.ordnum = MyTable.ordnum)
group by ordnum
order by ordnum
关于mysql - 如果列不为 0,则 SQL 查询每个订单仅返回 1 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751500/
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我希望我的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
如果您尝试在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
我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案
我有两个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了,所以充其量只能让更