首页 > 解决方案 > SQL 查询,仅显示订单上的单个地址

问题描述

我确定我在这里遗漏了一些简单的东西。我有一个查询,它返回一个如下所示的数据集:

**OrderNum     Address**
  12345        1405 W Hollywood
  12346        1555 3rd Ave
  22334        PO Box 1467
  22334        1327 14th Ln S.

我现在想要的是计算那些我每个订单只能看到一个地址的地址,或者如果有多个,只需像这样显示“多个”

**OrderNum     Address**
  12345        1405 W Hollywood
  12346        1555 3rd Ave
  22334        Multiple

如果我尝试在“count(OrderNum) > 1 ...”之类的情况下执行此操作,那么我必须按地址分组,但它不起作用。其他想法?我的大脑卡在这上面,所以我需要轻推一下。谢谢!

标签: sqlsql-server

解决方案


select ordernum, 
       case when count(*) > 1 
            then 'multiple'
            else max(address)
       end as address
from your_table
group by ordernum

您需要聚合所有未分组的列。我猜你没有使用max(address)或类似的东西。


推荐阅读