2017-02-24 4 views
0

두 개의 관련없는 테이블이 있는데 시세로 그 값을 합산하려고합니다.포스트 그레스 : 두 테이블의 합

  1. 주문 : PRODUCT_ID, 값
  2. 판매 : PRODUCT_ID, 값 제로 밖으로 모든 균형, 나는 그룹에 원하는 있는지 확인하기 위해

예를 들어

상품 ID별로 주문과 판매를 계산하고 값을 합산합니다.

+0

나는 시도하고 도움이되지만 더 정확한 예를 게시하시기 바랍니다 기쁠 것 인 경우에는이 검사를 실행할 수 있습니다. 이것은 게시 된 코멘트를 기반으로하는 오해의 소지가 있습니다. – engineersmnky

답변

0
orders_hash = Order.group(:product_id).sum(:value).sort_by(&:first).to_h 
sales_hash = Sale.group(:product_id).sum(:value).sort_by(&:first).to_h 

orders_hash == sales_hash 

그리고 위의 false

orders_hash.each do |k, v| 
    raise "Mismatch for product_id: #{k}" unless sales_hash[k] == v 
end 
+0

우리는 비슷한 것을 보내고 있지만 두 데이터베이스 호출로 인해 좋지 않습니까? –

+0

@AndrewCPKelley 하나의 DB 호출을 통해 관련없는 두 테이블에 대한 계산을 얻는 방법은 무엇입니까? :) 비록 이것이 가능하다면 (그리고 프로그래밍에있어서 불가능한 것은 아무것도 없다.) 가장 순수한 SQL이 될 가능성이 높다. –

+0

나는 네가 한 일을 좋아하지만 평등한지보기보다는 합계를 얻고 싶다. 관련없는 테이블의 합계에 대한 많은 게시물을 보았지만 더 명확하게 조사했습니다. 참조하십시오 : http://stackoverflow.com/questions/13021623/how-to-do-a-sum-across-two-unrelated-tables –