SQL 요청에서 JOIN을 사용할 때 잘못된 SUM

113408

안녕하세요 저는 데이터가 많은 두 개의 테이블이 있습니다. 두 테이블의 데이터를 가져와야합니다. 이렇게하려면 inner join. 그러나 내가 사용할 때 SUM잘못된 결과를 얻습니다. 나는 결과가 반환되는 행 수만큼 곱해진다는 것을 알고 있습니다. 나는 이것을 어떻게 얻을 수 있습니까?

요청 :

select  SUM(CASE WHEN det.IdGarantie != 18 AND det.IdGarantie != 17 AND det.IdGarantie!= 11 THEN det.Q_PrimeNette ELSE 0 END) AS 'cot nette',
    SUM(CASE WHEN det.IdGarantie = 18 THEN det.Q_PrimeNette ELSE 0 END) AS 'Fond comp',
    SUM(CASE WHEN det.IdGarantie = 11 THEN det.Q_PrimeNette ELSE 0 END) AS 'Carte Verte',
    SUM(CASE WHEN det.IdGarantie = 17 THEN det.Q_PrimeNette ELSE 0 END) AS 'Adhesion',
    SUM(CASE WHEN det.IdGarantie != 18 AND det.IdGarantie != 17 AND det.IdGarantie!= 11 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe',
    SUM(CASE WHEN det.IdGarantie = 18 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe Fond Comp',
    SUM(CASE WHEN det.IdGarantie = 17 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe Adhésion',
    SUM(CASE WHEN det.IdGarantie = 11 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe carte verte',
    SUM(hst.Q_Access) as 'Access'
from  OtoHistorique hst
inner Join OtoHistoriqueDet det On det.IdHistorique = hst.IdHistorique
where hst.POLICE = 3221086

예상 결과가 20 일 때 Access 열에 60이 표시됩니다.

누구든지 이것으로 나를 도울 수 있습니까? 내 요청에 잘못된 구문을 사용하는 경우 미안하지만 SQL의 초보자 일 뿐이며 현재 결과는 구문보다 중요합니다.

Veljkoz

테이블간에 일대 다 관계가있을 수 있으며, 이는 일부 값 SUM이 중복 됨을 의미 합니다. 다음과 같이 조인을 피하여이 문제를 해결할 수 있습니다.

select  SUM(CASE WHEN det.IdGarantie != 18 AND det.IdGarantie != 17 AND det.IdGarantie!= 11 THEN det.Q_PrimeNette ELSE 0 END) AS 'cot nette',
    SUM(CASE WHEN det.IdGarantie = 18 THEN det.Q_PrimeNette ELSE 0 END) AS 'Fond comp',
    SUM(CASE WHEN det.IdGarantie = 11 THEN det.Q_PrimeNette ELSE 0 END) AS 'Carte Verte',
    SUM(CASE WHEN det.IdGarantie = 17 THEN det.Q_PrimeNette ELSE 0 END) AS 'Adhesion',
    SUM(CASE WHEN det.IdGarantie != 18 AND det.IdGarantie != 17 AND det.IdGarantie!= 11 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe',
    SUM(CASE WHEN det.IdGarantie = 18 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe Fond Comp',
    SUM(CASE WHEN det.IdGarantie = 17 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe Adhésion',
    SUM(CASE WHEN det.IdGarantie = 11 THEN det.Q_Taxe ELSE 0 END) AS 'Taxe carte verte',
    (SELECT SUM(hst.Q_Access) 
     FROM OtoHistorique hst 
     WHERE det.IdHistorique = hst.IdHistorique) as 'Access' 
FROM OtoHistoriqueDet det 
WHERE EXISTS (SELECT 1 
              FROM OtoHistorique hst2 
              WHERE hst2.POLICE = 3221086 
                AND hst2.IdHistorique = det.IdHistorique)

이것은 아마도 더 최적화 될 수 있지만 두 테이블 간의 논리에 대한 더 많은 정보가 필요합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python 요청을 사용할 때 잘못된 URL

분류에서Dev

Facebook에서 Socialite를 사용할 때 잘못된 요청

분류에서Dev

동적 SQL을 사용할 때 가까운 잘못된 구문

분류에서Dev

React에서 Harvest API 인증을 시도 할 때 잘못된 요청 (400)

분류에서Dev

Sequelize는 TypeScript를 사용할 때 findAndCountAll ()에서 잘못된 SQL 문을 생성합니다.

분류에서Dev

nginx 잘못된 요청을 충족 할 때 fluentd regexp를 사용하는 방법

분류에서Dev

용어집을 만들려고 할 때 잘못된 요청

분류에서Dev

Google Gmail API에 토큰 요청을 할 때 잘못된 요청 400

분류에서Dev

Google Gmail API에 토큰 요청을 할 때 잘못된 요청 400

분류에서Dev

400-Python에서 pushalot API를 사용할 때 잘못된 요청

분류에서Dev

400-Python에서 pushalot API를 사용할 때 잘못된 요청

분류에서Dev

IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

분류에서Dev

RSpec 요청 사양을 사용하여 요청을 승인 할 때 잘못된 access_token

분류에서Dev

SQL Server 2008에서 세 개의 열을 연결할 때 잘못된 결과

분류에서Dev

Post에서 이미지를 요청할 때 잘못된 호출

분류에서Dev

서버에 요청을 보낼 때 잘못된 JSON

분류에서Dev

Saber API에 연결을 시도 할 때 오류 (400) 잘못된 요청

분류에서Dev

Oracle에서 왼쪽 외부 조인을 사용할 때 잘못된 식별자

분류에서Dev

Django AWS S3 버킷 이름 "."을 사용할 때 잘못된 인증서

분류에서Dev

Swagger를 사용하여 AngularJS에 게시 요청을 작성하려고 할 때 잘못된 요청이 있습니다.

분류에서Dev

grant_type : authorization_code를 사용할 때 Identity Server 4 / connect / token이 400 잘못된 요청을 반환 함

분류에서Dev

풀 요청을 Bitbucket API 2.0과 병합 할 때 잘못된 요청

분류에서Dev

크롬에 링크를 복사 할 때 파이썬에서 Google지도 API에서 잘못된 요청 응답을 받았습니다.

분류에서Dev

매개 변수가있는 SQL을 사용할 때 ","근처의 SQL 잘못된 구문

분류에서Dev

Kendo Grid에서 내 서비스를 호출 할 때 400 잘못된 요청

분류에서Dev

AWS S3-미리 서명 된 URL을 통해 파일을 PUTting 할 때 400 잘못된 요청

분류에서Dev

Android 앱에서 GET 요청을 보낼 때 NodeMCU 서버 잘못된 응답

분류에서Dev

SQL을 사용하여 데이터베이스에 데이터를 삽입하려고 할 때 "잘못된 열 이름"

분류에서Dev

외부 SQL 테이블을 사용할 때 잘못된 컨트롤러가 활성화되었습니다.

Related 관련 기사

  1. 1

    Python 요청을 사용할 때 잘못된 URL

  2. 2

    Facebook에서 Socialite를 사용할 때 잘못된 요청

  3. 3

    동적 SQL을 사용할 때 가까운 잘못된 구문

  4. 4

    React에서 Harvest API 인증을 시도 할 때 잘못된 요청 (400)

  5. 5

    Sequelize는 TypeScript를 사용할 때 findAndCountAll ()에서 잘못된 SQL 문을 생성합니다.

  6. 6

    nginx 잘못된 요청을 충족 할 때 fluentd regexp를 사용하는 방법

  7. 7

    용어집을 만들려고 할 때 잘못된 요청

  8. 8

    Google Gmail API에 토큰 요청을 할 때 잘못된 요청 400

  9. 9

    Google Gmail API에 토큰 요청을 할 때 잘못된 요청 400

  10. 10

    400-Python에서 pushalot API를 사용할 때 잘못된 요청

  11. 11

    400-Python에서 pushalot API를 사용할 때 잘못된 요청

  12. 12

    IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

  13. 13

    RSpec 요청 사양을 사용하여 요청을 승인 할 때 잘못된 access_token

  14. 14

    SQL Server 2008에서 세 개의 열을 연결할 때 잘못된 결과

  15. 15

    Post에서 이미지를 요청할 때 잘못된 호출

  16. 16

    서버에 요청을 보낼 때 잘못된 JSON

  17. 17

    Saber API에 연결을 시도 할 때 오류 (400) 잘못된 요청

  18. 18

    Oracle에서 왼쪽 외부 조인을 사용할 때 잘못된 식별자

  19. 19

    Django AWS S3 버킷 이름 "."을 사용할 때 잘못된 인증서

  20. 20

    Swagger를 사용하여 AngularJS에 게시 요청을 작성하려고 할 때 잘못된 요청이 있습니다.

  21. 21

    grant_type : authorization_code를 사용할 때 Identity Server 4 / connect / token이 400 잘못된 요청을 반환 함

  22. 22

    풀 요청을 Bitbucket API 2.0과 병합 할 때 잘못된 요청

  23. 23

    크롬에 링크를 복사 할 때 파이썬에서 Google지도 API에서 잘못된 요청 응답을 받았습니다.

  24. 24

    매개 변수가있는 SQL을 사용할 때 ","근처의 SQL 잘못된 구문

  25. 25

    Kendo Grid에서 내 서비스를 호출 할 때 400 잘못된 요청

  26. 26

    AWS S3-미리 서명 된 URL을 통해 파일을 PUTting 할 때 400 잘못된 요청

  27. 27

    Android 앱에서 GET 요청을 보낼 때 NodeMCU 서버 잘못된 응답

  28. 28

    SQL을 사용하여 데이터베이스에 데이터를 삽입하려고 할 때 "잘못된 열 이름"

  29. 29

    외부 SQL 테이블을 사용할 때 잘못된 컨트롤러가 활성화되었습니다.

뜨겁다태그

보관