> 데이터 베이스 > MySQL 튜토리얼 > SQL에서 인바운드 및 아웃바운드 제품 이동 데이터를 병합할 때 고유한 날짜를 어떻게 표시할 수 있습니까?

SQL에서 인바운드 및 아웃바운드 제품 이동 데이터를 병합할 때 고유한 날짜를 어떻게 표시할 수 있습니까?

DDD
풀어 주다: 2024-12-25 22:42:10
원래의
294명이 탐색했습니다.

How Can I Display Unique Dates When Merging Inbound and Outbound Product Movement Data in SQL?

테이블 병합 및 날짜 통합

SQL에서는 종합적인 분석을 위해 여러 테이블의 데이터를 결합하는 것이 필수적입니다. 이 문제를 해결하려면 제품 이동을 추적하는 Inbound 및 Outbound라는 두 테이블을 병합해야 합니다. 초기 쿼리는 이러한 테이블을 효과적으로 병합하지만 날짜를 고유하게 표시하기 위한 추가 요구 사항이 있습니다.

UNION ALL 및 GROUP BY

를 사용하여 고유한 날짜 표시 날짜 표시, GROUP과 함께 UNION ALL을 사용하도록 원래 쿼리를 수정할 수 있습니다. BY:

SELECT Date, Product, SUM(Inbound) as Inbound, SUM(Outbound) as Outbound
FROM ((SELECT Inbound_Date As Date, Product, SUM(Quantity) as Inbound, 0 as Outbound
      FROM Inbound
      GROUP BY 1,2
     ) UNION ALL
     (SELECT Outbound_Date, Product, 0 as Inbound, COUNT(*)  as Outbound 
      FROM Outbound
      GROUP BY 1,2
     )
    ) io
GROUP BY Date, Product;
로그인 후 복사

변경 사항 분석:

  • UNION ALL은 각각 원본 테이블 중 하나를 나타내는 두 개의 하위 쿼리 결과를 결합합니다.
  • 하위 쿼리는 Inbound_Date(별칭 Date) 및 Product를 기준으로 데이터를 그룹화합니다. Inbound 및 by Outbound_Date 및 Outbound의 제품.
  • 이러한 하위 쿼리를 중첩하면 Inbound 및 Outbound 수량은 열로 분리됩니다.
  • 외부 GROUP BY 절은 날짜 및 제품별로 데이터를 추가로 집계하여 다음을 보장합니다. 중복된 날짜는 제거됩니다.

출력 해석:

수정된 쿼리는 원하는 출력을 생성합니다.

Date Product Inbound Outbound
2017-05-23 Product A 400 1
2017-09-04 Product C 380 0
2017-10-18 Product C 0 1
... ... ... ...
2018-09-10 Product B 200 1
... ... ... ...

위 내용은 SQL에서 인바운드 및 아웃바운드 제품 이동 데이터를 병합할 때 고유한 날짜를 어떻게 표시할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿