LEFT JOIN ( SELECT FARMER_CD AS FARMER_CD, SUM(CNTRCT_SLL_WGHT) AS CTRT_WEIGHT, SUM( CASE WHEN CNTRCT_TYPE <> 'NOR_CONT' THEN CNTRCT_SLL_WGHT ELSE 0 END ) AS CHANGE_CTRT_WEIGHT, SUM(CNTRCT_PLNT_AREA) AS CTRT_AREA FROM R_PC_CTRT_PC_D WHERE SSTC = '35262703A' AND DATA_STATE = '1' AND PLAN_TYPE = 'INPLAN' AND LEAF_TYPE_CD = '10' AND BUSINESS_YEAR = 2022 GROUP BY FARMER_CD ) B ON A.FARMER_CD = B.FARMER_CD
时间: 2023-10-05 15:10:01 浏览: 42
这是一个SQL查询语句,用于左连接两个表 A 和 B,其中 B 表是一个子查询,对 R_PC_CTRT_PC_D 表进行了聚合计算。查询条件包括 SSTC、DATA_STATE、PLAN_TYPE、LEAF_TYPE_CD 和 BUSINESS_YEAR,目的是筛选出符合条件的数据进行连接和计算。具体的计算方式包括对 B 表中的 CNTRCT_SLL_WGHT 和 CNTRCT_PLNT_AREA 字段进行求和,并对 CNTRCT_TYPE 不等于 'NOR_CONT' 的数据进行特殊处理,最终得到 CTRT_WEIGHT 和 CHANGE_CTRT_WEIGHT 两个结果字段。
相关问题
LEFT JOIN R_FARMER C ON A.FARMER_CD = C.FARMER_CD
这是一段SQL语句中的LEFT JOIN语句,用于将表A和表C进行连接,连接条件是A表的FARMER_CD等于C表的FARMER_CD。这里使用了LEFT JOIN,表示左连接,即保留A表中的所有记录,如果C表中存在相应的记录,则将其与A表中的记录进行匹配。如果C表中不存在相应的记录,则使用NULL填充。
java农夫过河问题_农夫过河问题——C语言程序设计(转)
农夫过河问题是一个经典的逻辑问题,它的描述如下:
农夫要把一只狼、一只羊和一棵白菜都带到河的对岸。农夫有一条小船,但船只能容纳农夫和另外一件物品(狼、羊或白菜)。如果农夫不在,狼会吃羊,羊会吃白菜。请用 C 语言编写程序,输出农夫过河的步骤,使得农夫能够安全地把狼、羊和白菜都带到河的对岸。
以下是 C 语言实现的代码:
```c
#include <stdio.h>
void printState(int farmer, int wolf, int sheep, int cabbage) {
printf("%d %d %d %d\n", farmer, wolf, sheep, cabbage);
}
int isSafe(int farmer, int wolf, int sheep, int cabbage) {
if (farmer != wolf && farmer != sheep && farmer != cabbage && wolf != sheep) {
return 1;
}
return 0;
}
void solve(int farmer, int wolf, int sheep, int cabbage) {
if (wolf == 0 && sheep == 0 && cabbage == 0) {
printState(farmer, wolf, sheep, cabbage);
return;
}
if (isSafe(farmer, wolf, sheep, cabbage)) {
if (farmer == 1) {
solve(0, wolf, sheep, cabbage);
} else {
solve(1, wolf, sheep, cabbage);
}
}
if (farmer == wolf) {
if (farmer == 1) {
solve(0, 0, sheep, cabbage);
} else {
solve(1, 1, sheep, cabbage);
}
}
if (farmer == sheep) {
if (farmer == 1) {
solve(0, wolf, 0, cabbage);
} else {
solve(1, wolf, 1, cabbage);
}
}
if (farmer == cabbage) {
if (farmer == 1) {
solve(0, wolf, sheep, 0);
} else {
solve(1, wolf, sheep, 1);
}
}
}
int main() {
solve(1, 1, 1, 1);
return 0;
}
```
该程序使用递归方式解决农夫过河问题。其中,`printState` 函数用于输出当前状态,`isSafe` 函数用于判断当前状态是否安全,`solve` 函数用于解决问题,其中包括递归过程和状态转移过程。在 `main` 函数中调用 `solve` 函数,并传入初始状态 `(1, 1, 1, 1)`,即农夫、狼、羊和白菜都在河的起点。程序输出的结果即为农夫安全地带着狼、羊和白菜到达河的终点的过程。