표 1 :누락 된 기록 2008R2
Date PlacementID CampaignID Impressions
04/01/2014 100 10 1000
04/01/2014 101 10 1500
04/01/2014 100 11 500
표 2 :
나는 전체가 가입하고 왼쪽 문을 가입하여이 테이블에 합류했다Date PlacementID CampaignID Cost
04/01/2014 100 10 5000
04/01/2014 101 10 6000
04/01/2014 100 11 7000
04/01/2014 103 10 8000
, 나는 수 없습니다입니다 PlacementID 103 및 campaignID 10과 Cost 8000을 표시하는 table2의 마지막 행인 흔치 않은 레코드를 얻으려고합니다. 그러나 모든 원시 데이터와 파일을 검색했지만 누락 된 레코드는 두 소스간에 공통적이지 않습니다. 그러나이 레코드를 최종 테이블에 포함하고자합니다. 어떻게해야합니까? 이 두 테이블은 두 개의 다른 소스이며 결과는 공통 레코드 만 있습니다.
또한 누락 된 값은 최종 값에 필요한 정확한 값이므로 모든 것을 포함하고자합니다. 나는 아래에있는 내 SQL 스크립트를 포함하고있다 :
SELECT A.palcementid,
A.campaignid,
A.date,
Sum(A.impressions) AS Impressions,
Sum(CASE
WHEN C.placement_count > 1 THEN (B.cost/C.placement_count)
ELSE B.cost
END) AS Cost
FROM table1 A
FULL JOIN table2 B
ON A.placementid = B.placementid
AND A.campaignid = B.campaignid
AND A.date = B.date
LEFT JOIN (SELECT Count(A.placementid) AS Placement_Count,
placementid. campaignid,
date
FROM table1
GROUP BY placementid,
campaignid,
date) c
ON A.placementid = C.placementid
AND A.campaignid = C.campaignid
AND A.date = C.date
GROUP BY A.placementid,
A.campaignid,
A.date
소스에 비용이 하나 개의 배치 만 한 번에 할당했기 때문에 나는 그래서 그 분할해야 배치함으로써 비용을 분할하고 있기 때문에 같은 Placementid 반복 더 실제 테이블에 같은 날짜에 1 번 이상.
안녕하세요. [최근 질문] (https://stackoverflow.com/questions/44422870/convert-transfer-multiple-value-into-columns/44424157)이 너무 광범위하게 닫힌 이유에 대해 대화하고 싶다면 예기치 않게 삭제됨), Ping을 수행하십시오. 이유를 설명하려고합니다. 귀하의 다른 질문에 추가 한 광범위한 조언은 귀하가 귀하의 답변 중 일부를 수락하는 것을 보는 것이 좋을 것입니다. 도움이 필요하면 알려주세요. – halfer