sql server编写sql语句,表CMS_VEND中有字段WHSEID,BTSTAT,要求按WHSEID分组,分组后,判断BTSTAT,如果组内BTSTAT有A数值,则这组BTSTAT显示A,如果组内BTSTAT有T数值,则这组BTSTAT显示T,否则显示空
时间: 2023-09-24 21:11:24 浏览: 42
SQL 必知必会 10 - 分组数据1
你可以尝试下面的SQL语句:
```sql
SELECT WHSEID,
(CASE WHEN 'A' IN (SELECT DISTINCT BTSTAT FROM CMS_VEND v2 WHERE v1.WHSEID = v2.WHSEID) THEN 'A'
WHEN 'T' IN (SELECT DISTINCT BTSTAT FROM CMS_VEND v3 WHERE v1.WHSEID = v3.WHSEID) THEN 'T'
ELSE ''
END) AS BTSTAT
FROM CMS_VEND v1
GROUP BY WHSEID
```
解释一下上面的SQL语句,首先按照WHSEID字段进行分组,然后使用CASE语句判断BTSTAT字段,如果当前组内BTSTAT有'A'值,则显示为'A',如果当前组内BTSTAT有'T'值,则显示为'T',否则显示为空字符串。最终返回WHSEID和BTSTAT两个字段的查询结果。
阅读全文