Tables:
CREATE TABLE `crm\_account` (
 `CustomerID` varchar(255) NOT NULL,
 `CustomerName` varchar(255) DEFAULT NULL,
 `Industry` varchar(255) DEFAULT NULL,
 `Region` varchar(255) DEFAULT NULL,
 `CreateTime` datetime DEFAULT NULL,
 `UpdateTime` datetime DEFAULT NULL,
 `LighthouseLogo` enum('','Yes','No') DEFAULT NULL COMMENT 'lighthouse users are users with huge influence',
 `Segmentation` enum('SKA','KA','SMB') NOT NULL COMMENT 'customer priority',
 `IsTiDBCloudTenant` tinyint(1) DEFAULT NULL COMMENT 'Whether TiDB Cloud user',
 `CloudTenantID` varchar(255) DEFAULT NULL COMMENT 'TiDB Cloud Tenant ID',
 `CloudTenantCreateTime` varchar(255) DEFAULT NULL COMMENT 'TiDB Cloud Tenant create time',
 `CloudTenantType` enum('','Unknown','On Demand','Commitment Plan','Paid PoC') DEFAULT NULL COMMENT ' TiDB Cloud Tenant Payment Type',
 PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4\_bin COMMENT='customer infomration'

CREATE TABLE `salesforce\_order` (
 `OrderID` varchar(255) NOT NULL,
 `CustomerID` varchar(255) NOT NULL,
 `ACVAmount` float NOT NULL,
 `ExchangeRate` varchar(255) NOT NULL,
 `OrderNumberC` varchar(255) NOT NULL,
 `Salesperson` varchar(255) NOT NULL,
 `OrderType` enum('New','New Subscription','Renewal','Expansion') NOT NULL,
 `OrderStartDate` date NOT NULL,
 `OrderEndDate` date NOT NULL,
 `Tax` float NOT NULL,
 `TCVAmount` float NOT NULL,
 `TermMonths` float NOT NULL,
 `ProductFamily` enum('TiDB Cloud','PingCAP Services','TiDB Enterprise Subscription','PingCAP Training & Exam Services','PingCAP Professional Services','PingCAP Consulting Services') NOT NULL,
 `FiscalPeriod` varchar(255) NOT NULL,
 `SigningDate` date NOT NULL,
 PRIMARY KEY (`OrderID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4\_bin

Assume you have a powerful function named fill\_later({description}), you can call it inside a SQL when you need more information. 

Let's think step by step, generate an json format answer for the question "how much did the company's total revenue increase each year compared to the previous year?" using the following template
{
step. The question after Revised, Marked as RQ:
{RQ: {to\_fill}}

step. list all definitions of [concept or term] in the RQ are not clearly understood 
{unclearConcept: string[] = {to\_fill}}

step. try your best to a give definition of each concepts using the existing column in the tables
{definitions: string[] = {to\_fill}}

step. Disassemble the question into sub-questions, and list the step-by-step execution process in sql pseudocode format and and all tables/columns required to answer these sub-questions 
{executions: {
 subQuestion = {to\_fill},
 execution = {to\_fill},
 columns = {
 {table}: string[] = {to\_fill}, // table: columns
 {table}: string[] = {to\_fill},
 ...
 } 
},{
 subQuestion = {to\_fill},
 execution = {to\_fill},
 columns = {to\_fill} 
}...}

step. must follow the rules one by one, use the best practice to write a single SQL to answer RQ (make sure check relations of sub-questions).
rules {
- follow the Table Schema above strictly, do not use any non-exists table or non-exists column!!!
- use common table expression if necessary
- avoid "Invalid use of group function" error
- avoid "Unknown column" error
- avoid ambiguous column references by using table aliases and double-checking column names before generated
- make sure the SQL can answer RQ
}
{sql: string | null = {to\_fill}}
{sqlCanAnswer:boolean = {to\_fill}}
}
ables:
CREATE TABLE `crm\_account` (
 `CustomerID` varchar(255) NOT NULL,
 `고객명` varchar(255) DEFAULT NULL,
 `Industry` varchar(255) DEFAULT NULL,
 지역` varchar(255) DEFAULT NULL,
 CreateTime` 날짜 시간 DEFAULT NULL,
 업데이트 시간` 날짜 시간 DEFAULT NULL,
 `LighthouseLogo` enum('','Yes','No') DEFAULT NULL COMMENT '라이트하우스 사용자는 영향력이 큰 사용자입니다',
 `세분화` enum('SKA','KA','SMB') NOT NULL COMMENT '고객 우선순위',
 `IsTiDBCloudTenant` tinyint(1) DEFAULT NULL COMMENT 'TiDB 클라우드 사용자 여부',
 `CloudTenantID` varchar(255) DEFAULT NULL COMMENT 'TiDB 클라우드 테넌트 ID',
 `CloudTenantCreateTime` varchar(255) DEFAULT NULL COMMENT 'TiDB 클라우드 테넌트 생성 시간',
 `CloudTenantType` enum('','알 수 없음','온디맨드','약정형','유료 PoC') DEFAULT NULL COMMENT 'TiDB 클라우드 테넌트 결제 유형',
 PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4\_bin COMMENT='customer infomation'

CREATE TABLE `salesforce\_order` (
 OrderID` varchar(255) NOT NULL,
 `고객ID` varchar(255) NOT NULL,
 ACVAmount` float NOT NULL,
 `ExchangeRate` varchar(255) NOT NULL,
 OrderNumberC` varchar(255) NOT NULL,
 `Salesperson` varchar(255) NOT NULL,
 주문유형` enum('신규','신규구독','갱신','확장') NOT NULL,
 주문시작일` 날짜 NOT NULL,
 `OrderEndDate` 날짜 NOT NULL,
 `Tax` float NOT NULL,
 `TCVAmount` float NOT NULL,
 `TermMonths` float NOT NULL,
 `ProductFamily` enum('TiDB 클라우드','PingCAP 서비스','TiDB 기업구독','PingCAP 교육 및 시험 서비스','PingCAP 전문 서비스','PingCAP 컨설팅 서비스') NOT NULL,
 회계기간` varchar(255) NOT NULL,
 `SigningDate` 날짜 NOT NULL,
 PRIMARY KEY (`OrderID`)
) ENGINE=InnoDB 기본 문자 집합=utf8mb4 COLLATE=utf8mb4\_bin

fill\_later({description})라는 강력한 함수가 있다고 가정하면, 더 많은 정보가 필요할 때 SQL 내에서 호출할 수 있습니다. 

다음 템플릿을 사용하여 "회사의 총 수익이 전년도에 비해 매년 얼마나 증가했습니까?"라는 질문에 대한 json 형식의 답변을 생성하는 것을 단계별로 생각해 봅시다.
{
단계. 수정된 질문 뒤의 질문은 RQ로 표시합니다:
{RQ: {to\_fill}}

단계. RQ에서 [개념 또는 용어]의 정의가 명확하게 이해되지 않는 모든 것을 나열합니다. 
{unclearConcept: 문자열[] = {to\_fill}}

단계. 표의 기존 열을 사용하여 각 개념에 대한 정의를 최선을 다해 제공하세요.
{definitions: string[] = {to\_fill}}

단계. 질문을 하위 질문으로 분해하고 단계별 실행 프로세스를 SQL 의사 코드 형식으로 나열하고 이러한 하위 질문에 답하는 데 필요한 모든 테이블/열을 나열합니다. 
{executions: {
 subQuestion = {to\_fill},
 실행 = {to\_fill},
 columns = {
 {테이블}: 문자열[] = {to\_fill}, // 테이블: 열
 {테이블}: 문자열[] = {to\_fill},
 ...
 } 
},{
 subQuestion = {to\_fill},
 execution = {to\_fill},
 columns = {to\_fill} 
}...}

단계. 규칙을 하나씩 따라야 하며, 모범 사례를 사용하여 RQ에 응답하는 단일 SQL을 작성해야 합니다(하위 질문의 관계를 확인해야 함).
규칙 {
- 위의 테이블 스키마를 엄격하게 따르고, 존재하지 않는 테이블이나 존재하지 않는 열을 사용하지 마십시오 !!!
- 필요한 경우 공통 테이블 표현식 사용
- "그룹 함수의 잘못된 사용" 오류 방지
- "알 수 없는 열" 오류 방지
- 테이블 별칭을 사용하고 생성 전에 열 이름을 다시 확인하여 모호한 열 참조를 피합니다.
- SQL이 RQ에 응답할 수 있는지 확인
}
{sql: 문자열 | null = {to\_fill}}
{sqlCanAnswer:boolean = {to\_fill}}
}