On Tuesday, April 2, 2019 at 2:06:36 PM UTC-7, Elanor Riley wrote:
>
> I need to add multiple where statements, linked with AND, but also include 
> a where statement with several conditions linked by OR
>
> What I want to generate:
>
> SELECT column1, column2 FROM table1
> WHERE item_id IN (12345, 23456)
> AND account_num = 'ACCT01'
> AND (
>     (from_date IS NULL AND to_date IS NULL)
>     OR (from_date <= '2019-04-01' AND to_date >= '2019-04-01')
> )
>
>
> Unfortunately, I cannot get the last where statement with OR to function 
> properly.
>
> Code:
>
> Sequel::Model.db[:table1].select(:column1, :column2)
> .where(:item_id => [12345, 23456], :account_num => 'ACCT01')
> .where(
>     [:from_date => nil, :to_date => nil] |
>     [['from_date <= ?', date], ['to_date >= ?', date]]
> )
>
>
You are calling Array#| here, which won't work.  Something like this should 
work:

Sequel::Model.db[:table1].select(:column1, :column2).
where(:item_id => [12345, 23456], :account_num => 'ACCT01').
where do
  ((from_date <= date) & (to_date >= date)) |
  {:from_date => nil, :to_date => nil}
end

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to