일부 값의 합계와 IF 문의 결과가 포함 된 계산을 Access에서 코딩하려고합니다.SQL 조건부 합계
여기 (
CompanyName Year AssetName DatapointID Datapointname DatapointValue
CompanyA 2011 AssetA 4025 Active operated wells 129
CompanyA 2011 AssetA 4058 API gravity of oil 38.5563255
CompanyA 2011 AssetA 4032 Number of gas lift wells 70
CompanyA 2011 AssetA 4033 Number of wells with ESPs 0
CompanyA 2011 AssetA 4036 Wells with CO2 production 25
CompanyA 2011 AssetA 4035 Wells with H2S production 9
CompanyA 2011 AssetA 4038 Wells with high pressure 0
CompanyA 2011 AssetA 4037 Wells with high temperature 0
CompanyA 2011 AssetA 4034 Wells with scale production 42
CompanyA 2011 AssetA 4039 Wells with wax 0
계산이 SUM (DatapointValue) DatapointID IN에 필요 ('CostBaseQuery에서) 4032,4033,4035 내가 다루고있어 데이터의 종류의 테이블 4036403740384039)
PLUS IF 문에서 리턴 값
오일 (API 중력 < = 5> 20의 값을 사용하면 ActiveOperatedWells, Else 0)
계산을 코딩하는 데 다음 방법을 사용하려고했지만 SUM 계산을 수행하는 대신 SUM의 각 반복에서 데이터를 출력하고 IF 문을 실행합니다.
SELECT qb1.CompanyName, qb1.AssetName, qb1.Year,
(SUM(qb1.DatapointValue)
+ IIF(qb2.DatapointValue>=5,
IIF(qb2.DatapointValue<20, qb3.DatapointValue, 0), 0))
AS NumberOfWellCompletions
FROM (CostBaseQuery AS qb1
INNER JOIN CostBaseQuery AS qb2
ON qb1.CompanyYearAssetID=qb2.CompanyYearAssetID)
INNER JOIN CostBaseQuery AS qb3
ON qb1.CompanyYearAssetID=qb3.CompanyYearAssetID
WHERE qb1.DatapointID IN (4032,4033,3036,4035,4038,4037,4034,4039)
AND qb2.DatapointID=4058 AND qb3.DatapointID=4025
GROUP BY qb1.CompanyName, qb1.AssetName, qb1.Year,
qb1.DatapointValue, qb2.DatapointValue, qb3.DatapointValue
어떤 도움이 많이 주시면 감사하겠습니다 그리고 나는 이것이 내 이전 산책보다 더 많은 의미가 희망!
그러나 한 번에 하나의 매우 지역화 된 질문을 응용 프로그램으로 작성하고 있습니다. – Fionnuala
나는 엑셀 모델에서 200+ 계산을 엑세스 모델로 옮기려고 노력하고있다. 그리고 나의 SQL 기술은 이상한 질문이 아니다. – Magda