Excel에서 SQL을 실행하는 데 ADO를 사용합니다. 2014201520162017201820192020SQL UNION ALL 오류
이제 2014 년 및 2015 년이 채워진 된 데이터 0.2016 반으로 데이터를 입력했다 :
나는 Excel 통합 문서에서 7 개 테이블이있다. 오늘은 여전히 2016 년
같이 내부
2017,2018, 2019,2020 내가 2016 정보를 찾아 볼 때 것을 발견, 내가
나중에 모든 테이블을 조인 from ...[$2014] UNION ALL from ...[$2014] UNION ALL from ...[$2015] UNION ALL from ...[$2016]....UNION ALL from ...[$2020]
를 사용, 그리고 데이터가없는 , 통계는 완전히 틀리다. 나는 오랫동안 디버깅을했습니다. 그런 다음 2017-2020에 데이터가 없음을 알았습니다. 2017-2020에 가짜 행 하나를 추가하여 문제가 해결되도록합니다.
그러나 2017-2020 년에 가짜 행을 추가해야하는 것은 귀찮습니다.
따라서 어떤 제안이라도 완전히 문제를 해결할 수 있습니까? (A VBA 문자열에 싸여)
SQL :
SELECT officer, NULL,
SUM(IIF(isnumeric(mkt) = true AND Survey='CPI' AND Activity='FI' AND Outcome= 'C',
Totalmin, 0)/468),
SUM(IIF(isnumeric(Non) = true AND Survey='CPI' AND Activity='FI' AND Outcome= 'C',
Totalmin, 0)/468),
NULL, NULL,
IIF(ISNULL(SUM(mkt)), 0, SUM(mkt)),
Sum(Non), SUM(ICP), (SUM(mkt) + SUM(Non) + SUM(ICP)),
NULL, NULL, NULL,
COUNT(IIF(Survey='CPI' AND Activity='FI',
Totalmin, NULL)),
NULL,
COUNT(IIF(Survey='CPI' AND Activity='FI' AND
(Outcome ='C' OR Outcome='D'OR Outcome='O'), Totalmin, NULL)),
NULL,
SUM(IIF(Survey='CPI' AND Activity='FI',Totalmin, 0)),
NULL,
SUM(IIF(Survey='CPI' AND Activity='FI' AND
(Outcome ='C' OR Outcome='D'), Totalmin, 0))
FROM (SELECT officer, rank, year, month, day, survey, activity,
outcome, mkt, non, totalmin, ICP, tabledate FROM [2014$]
UNION ALL SELECT officer, rank, year, month, day, survey, activity,
outcome, mkt, non, totalmin, ICP, tabledate FROM [2015$]
UNION ALL SELECT officer, rank, year, month, day, survey, activity,
outcome, mkt, non, totalmin, ICP, tabledate FROM [2016$]) as table3
WHERE officer IS NOT NULL
AND officer <> '' AND officer <> ' '
AND tabledate >= # " & frommDate & "#
AND tabledate < # " & tooDate & " #
GROUP BY officer
당신은 – cha
@cha를 Excel 파일에있는 기존의 모든 워크 시트를 통과 루프에서 동적으로'FROM' 부분을 구축 할 수 있습니다하지만 그것은 SQL 문에서 VBA 루프를 실행할 수 됐나 SQL 문에? – evabb
아니, 나는 당신이 SQL 문을 – cha