簡體   English   中英

SQL查詢到Ruby on Rails

[英]SQL query to ruby on rails

如果您能幫助我,我在徘徊。
我在SQL上有此查詢,我需要在Rails應用程序中進行查詢。
這些查詢代表相同的結果,並且效果很好。

SELECT DISTINCT ON (i.id)   
i.id, i.den_cont, c.date_expired  
FROM Items i  
JOIN Calibrations c ON c.item_id = i.id  
ORDER BY i.id, date_expired desc  

select      codigo, numero, den_cont, date_expired  
from        items  
join calibrations c  
on      items.id = c.item_id  
inner join (select item_id, MAX(date_expired) as FECHA  
from calibrations  
group by item_id) as i2  
on c.item_id = i2.item_id and c.date_expired = i2.FECHA  

我有這個,我需要更改它以完成上述操作。

@items = Item.joins(:calibrations).where('calibrations.date_expired <= ?', '2014/09/01')

這樣有幫助嗎?

Items.join(:calibrations)
     .where('calibrations.date_expired <= ?', '2014-09-01')
     .order('items.id')
     .group('items.id', 'items.den_cont')
     .select('items.id', 'items.den_cont', 'MAX(calibrations.date_expired)')

我假設items.id是主鍵,然后第二個組參數是,只要您可以選擇den_cont列即可。

編輯:這也是一個選項,

Items.join(:calibrations)
     .where('calibrations.date_expired <= ?', '2014-09-01')
     .order('items.id')
     .order('calibrations.date_expired DESC')
     .select('DISTINCT ON (items.id) items.id, items.den_cont, calibrations.date_expired AS colaboration_expired')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM