다른 테이블의 합계 값으로 쿼리 선택

JK36

저는 SQLite로 작업하고 있으며 3 개의 테이블, 프로젝트, 송장 및 주문이 있습니다. 이 테이블에 저장된 필드를 선택하는 프로젝트 테이블을 기반으로하는 select 문이 있지만 특정 프로젝트에 대한 송장 합계 값과 특정 프로젝트에 대한 주문 합계 값도 원합니다. 모든 값을 개별적으로 가져 오는 방법을 알고 있지만 주문 / 송장의 합계 값을 프로젝트 데이터 행에 가져 오는 방법을 알아 내지 못했습니다. 검색해야하는 중첩 된 선택입니까, 아니면 다른 개념입니까?

프로젝트 테이블을 기준으로 선택

SELECT  project.projectID, project.project_title, project.end_date, project.project_manager, project_status.project_status
FROM project
LEFT JOIN project_status
ON project.project_statusID=project_status.project_statusID
WHERE project.project_statusID BETWEEN 1 AND 12

x가 첫 번째 선택의 프로젝트 ID 인 송장 테이블을 기반으로 선택

SELECT sum(invoice_net)
FROM invoice
WHERE projectID= x

x가 첫 번째 선택의 프로젝트 ID 인 주문 테이블을 기반으로 선택하십시오.

SELECT sum(total_order)
FROM order
WHERE projectID = x
Jimhark

샘플 데이터를 제공하지 않았거나 필요한 정확한 SQL을 제공 할 수있는 충분한 DB 스키마를 제공하지 않았습니다.

송장이나 주문 테이블을 설명하지 않습니다. ProjectID 속성이 포함되어 있다고 가정해야합니다.

하위 선택을 사용할 수 있습니다.

http://www.techrepublic.com/article/use-sql-subselects-to-consolidate-queries/1045787/ https://msdn.microsoft.com/en-us/library/ff487138.aspx

선택 다음과 같이 보일 수 있습니다 .

SELECT
    project.projectID,
    project.project_title,
    project.end_date,
    project.project_manager,
    project_status.project_status,
    (SELECT sum(invoice.invoice_net) FROM invoice WHERE invoice.projectID = project.projectID),
    (SELECT sum(order.total_order) FROM order WHERE order.projectID = project.projectID)
FROM project
LEFT JOIN project_status
    ON project.project_statusID=project_status.project_statusID
WHERE project.project_statusID BETWEEN 1 AND 12

또는 그룹 기준으로 참여. 보다:

SQL JOIN, GROUP BY on three table to get totals

집계되지 않은 모든 항목 (일반적으로 프로젝트 테이블에서 선택한 모든 필드)별로 그룹화 한 다음 집계 함수 (합계)를 세부 속성 (invoice_net 및 total_order)에 적용해야합니다.

다음과 같이 (예상되지 않음) :

SELECT
    project.projectID,
    project.project_title,
    project.end_date,
    project.project_manager,
    project_status.project_status,
    sum(invoice.invoice_net),
    sum(order.total_order)
FROM project
LEFT JOIN project_status
    ON project.project_statusID=project_status.project_statusID
LEFT JOIN invoice
    ON project.projectID = invoice.projectID
LEFT JOIN order
    ON project.projectID = order.projectID
WHERE project.project_statusID BETWEEN 1 AND 12
GROUP BY project.projectID, project.project_title, project.end_date,
    project.project_manager, project_status.project_status

무엇을 선택해야합니까? 성능 비슷 해야 하지만 쿼리 최적화 프로그램의 약점으로 인해 하나가 다른 하나보다 선호 될 수 있습니다. 이것이 중요한 경우 성능을 테스트하십시오.

일회성의 경우 조인 된 테이블의 뷰가 아직 존재하지 않는 경우 하위 선택을 사용합니다. 그러나 실제로 뷰가 존재하거나 존재해야합니다.이 경우 뷰를 사용하거나 필요한 경우 뷰를 만드는 것은 GROUP BY와 함께 매우 자연 스럽습니다.

따라서 실제 대답은 다음과 같습니다.

CREATE VIEW project_order_invoice AS
SELECT
    project.projectID,
    project.project_title,
    project.end_date,
    project.project_manager,
    project_status.project_status,
    invoice.invoice_net,
    order.total_order
FROM project
LEFT JOIN project_status
    ON project.project_statusID=project_status.project_statusID
LEFT JOIN invoice
    ON project.projectID = invoice.projectID
LEFT JOIN order
    ON project.projectID = order.projectID


SELECT
    projectID,
    project_title,
    end_date,
    project_manager,
    project_status,
    sum(invoice_net),
    sum(total_order)
FROM project_order_invoice
WHERE project_statusID BETWEEN 1 AND 12
GROUP BY projectID, project_title, end_date,
    project_manager, project_status

보기의 경우 ID 속성의 사본 1 개만 제외하고 모든 테이블의 모든 속성을 포함 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

임시 테이블의 합계를 내 선택 쿼리로 가져옵니다.

분류에서Dev

다른 테이블의 열 값을 기반으로 한 테이블에서 선택하는 SQL 쿼리

분류에서Dev

다른 테이블의 값을 기반으로 값을 선택하는 SELECT 쿼리

분류에서Dev

MySQL 프로젝트 설계-다른 선택 쿼리의 행을 기반으로 한 테이블에서 조건부 선택

분류에서Dev

MySQL의 다른 쿼리에서 선택한 값의 합계 가져 오기-PHP

분류에서Dev

첫 번째 선택 쿼리 결과를 기반으로 두 개의 다른 선택 쿼리 결과 (Oracle)에서 하나의 값을 선택합니다.

분류에서Dev

두 개의 다른 테이블의 값을 기반으로 하나의 테이블을 선택하는 MySQL 쿼리.

분류에서Dev

다른 테이블의 쿼리를 기반으로하는 열의 쿼리 합계

분류에서Dev

단일 쿼리 만 사용하여 다른 테이블에서 두 개의 다른 값을 선택하려면 어떻게해야합니까?

분류에서Dev

선택 값을 다른 테이블의 값으로 바꾸기

분류에서Dev

Linq 쿼리는 테이블의 첫 번째 행에서만 값을 선택합니다.

분류에서Dev

열 값을 기준으로 3 가지 옵션 및 다른 테이블에서 선택하는 SQL 쿼리

분류에서Dev

동일한 선택 쿼리의 다른 값을 기반으로 통합 된 값을 선택 하시겠습니까?

분류에서Dev

Oracle의 다른 테이블에 대한 조건부 쿼리를 기반으로 행 선택

분류에서Dev

테이블의 다른 조건을 기반으로 레코드 쿼리 (레코드 선택)

분류에서Dev

MySQL 쿼리-하나에서 선택, 다른 테이블에서 계산

분류에서Dev

MySQL은 테이블의 열 이름과 다른 테이블의 값으로 동적 행 값을 선택합니다.

분류에서Dev

다른 월 및 합계 값에 대해 동일한 테이블의 두 쿼리를 결합합니다.

분류에서Dev

서로 다른 행을 선택하면서 다른 테이블의 열 통합

분류에서Dev

테이블 데이터의 다른 표현을 얻으려면 쿼리를 선택하십시오.

분류에서Dev

다른 테이블에 있지 않거나 특정 값이있는 해당 테이블에서 하나의 테이블에서 선택하는 SQL 쿼리

분류에서Dev

MYSQL은 테이블이 아닌 두 개의 쿼리에서 일치하는 레코드 만 선택한 다음 B 쿼리로 결과를 정렬합니다.

분류에서Dev

다른 테이블 열의 값을 기반으로하는 쿼리 테이블

분류에서Dev

SQL-다른 테이블의 값 조회를 사용하여 선택 쿼리에 삽입

분류에서Dev

Postgres 선택 쿼리 : 두 개의 다른 테이블에서 표시 수 선택

분류에서Dev

navicat 쿼리 작성기의 값으로 한 테이블의 항목 수 선택

분류에서Dev

다른 테이블을 대상으로하는 2 개의 정규 표현식이있는 MySQL 선택 쿼리 내부 조인 테이블

분류에서Dev

MySql은 다른 테이블의 MAX 값을 기반으로 한 테이블의 모든 행을 선택합니다.

분류에서Dev

SQl 쿼리 서로 다른 조건에서 동일한 테이블의 여러 선택 구문

Related 관련 기사

  1. 1

    임시 테이블의 합계를 내 선택 쿼리로 가져옵니다.

  2. 2

    다른 테이블의 열 값을 기반으로 한 테이블에서 선택하는 SQL 쿼리

  3. 3

    다른 테이블의 값을 기반으로 값을 선택하는 SELECT 쿼리

  4. 4

    MySQL 프로젝트 설계-다른 선택 쿼리의 행을 기반으로 한 테이블에서 조건부 선택

  5. 5

    MySQL의 다른 쿼리에서 선택한 값의 합계 가져 오기-PHP

  6. 6

    첫 번째 선택 쿼리 결과를 기반으로 두 개의 다른 선택 쿼리 결과 (Oracle)에서 하나의 값을 선택합니다.

  7. 7

    두 개의 다른 테이블의 값을 기반으로 하나의 테이블을 선택하는 MySQL 쿼리.

  8. 8

    다른 테이블의 쿼리를 기반으로하는 열의 쿼리 합계

  9. 9

    단일 쿼리 만 사용하여 다른 테이블에서 두 개의 다른 값을 선택하려면 어떻게해야합니까?

  10. 10

    선택 값을 다른 테이블의 값으로 바꾸기

  11. 11

    Linq 쿼리는 테이블의 첫 번째 행에서만 값을 선택합니다.

  12. 12

    열 값을 기준으로 3 가지 옵션 및 다른 테이블에서 선택하는 SQL 쿼리

  13. 13

    동일한 선택 쿼리의 다른 값을 기반으로 통합 된 값을 선택 하시겠습니까?

  14. 14

    Oracle의 다른 테이블에 대한 조건부 쿼리를 기반으로 행 선택

  15. 15

    테이블의 다른 조건을 기반으로 레코드 쿼리 (레코드 선택)

  16. 16

    MySQL 쿼리-하나에서 선택, 다른 테이블에서 계산

  17. 17

    MySQL은 테이블의 열 이름과 다른 테이블의 값으로 동적 행 값을 선택합니다.

  18. 18

    다른 월 및 합계 값에 대해 동일한 테이블의 두 쿼리를 결합합니다.

  19. 19

    서로 다른 행을 선택하면서 다른 테이블의 열 통합

  20. 20

    테이블 데이터의 다른 표현을 얻으려면 쿼리를 선택하십시오.

  21. 21

    다른 테이블에 있지 않거나 특정 값이있는 해당 테이블에서 하나의 테이블에서 선택하는 SQL 쿼리

  22. 22

    MYSQL은 테이블이 아닌 두 개의 쿼리에서 일치하는 레코드 만 선택한 다음 B 쿼리로 결과를 정렬합니다.

  23. 23

    다른 테이블 열의 값을 기반으로하는 쿼리 테이블

  24. 24

    SQL-다른 테이블의 값 조회를 사용하여 선택 쿼리에 삽입

  25. 25

    Postgres 선택 쿼리 : 두 개의 다른 테이블에서 표시 수 선택

  26. 26

    navicat 쿼리 작성기의 값으로 한 테이블의 항목 수 선택

  27. 27

    다른 테이블을 대상으로하는 2 개의 정규 표현식이있는 MySQL 선택 쿼리 내부 조인 테이블

  28. 28

    MySql은 다른 테이블의 MAX 값을 기반으로 한 테이블의 모든 행을 선택합니다.

  29. 29

    SQl 쿼리 서로 다른 조건에서 동일한 테이블의 여러 선택 구문

뜨겁다태그

보관