【问题标题】:Select Same Customer Name but that has different customer Address选择相同的客户名称但具有不同的客户地址
【发布时间】:2010-11-02 18:26:03
【问题描述】:

尝试选择都属于同一客户但地址不同的记录。

所以我稍后可以让用户选择 Bob Yonkers,然后选择将 Bob 的所有记录更新到特定地址。所以我想显示所有可用的记录。

数据示例:

CUSTOMER_NAME、CUSTOMER_ADDRESS Bob Yonkers , 42 卫星委员会 鲍勃扬克斯,轨道街 667 号 Bob Yonkers , 42 卫星委员会 鲍勃扬克斯,轨道街 667 号 大卫·布姆,布什大街 5959 号 大卫·布姆,布什大街 5959 号 大卫·布姆,布什大街 5959 号 大卫·布姆,布什大街 5959 号 大卫·布姆,布什大街 5959 号 红宝石星期二 , 123 Highway Ln Apt#1 红宝石星期二 , 123 Highway Ln 大卫·布姆 ,5959 Bush Ave 大卫·布姆 ,5959 Bush Ave 大卫·布姆 ,5959 Bush Ave

所以查询会带回这些结果...

结果示例:

CUSTOMER_NAME、CUSTOMER_ADDRESS Bob Yonkers , 42 卫星委员会 鲍勃扬克斯,轨道街 667 号 红宝石星期二 , 123 Highway Ln Apt#1 红宝石星期二 , 123 Highway Ln

任何帮助将不胜感激。

【问题讨论】:

  • 阅读您的问题,您提出的问题似乎不是您想要的问题。看起来好像您想找到有多个客户居住在该地址的地址。你能澄清一下吗?
  • 请把相关表的结构贴出来
  • 希望有帮助,之前没有意识到它的格式有多糟糕

标签: sql-server tsql


【解决方案1】:
SELECT * 
FROM [table] t1
INNER JOIN [table] t2 ON t1.Name=t2.Name AND t1.Address<>t2.Address

【讨论】:

  • 我认为你需要一个 SELECT DISTINCT,否则在示例案例中你会得到重复。
  • 这个很接近,但它带回了 Bob Yonkers 的所有四个,而不仅仅是两个不同的地址。
【解决方案2】:

这是对 Joel 的改进:

SELECT distinct t1.* 
FROM [table] t1
INNER JOIN [table] t2 ON t1.Name=t2.Name AND t1.Address<>t2.Address

【讨论】:

    【解决方案3】:

    试试这个...

    select * from (select count(customername) as ct, customername, address from table group by customername, address) t1
    where t1.ct>1
    

    【讨论】:

      【解决方案4】:

      这让我很感兴趣,因为一位朋友问过我类似的问题。下面的查询将解决问题,尽管效率低:

      mysql> select DISTINCT CUSTOMER_NAME,CUSTOMER_ADDRESS from CUST_ADDR where CUSTOMER_NAME in (select CUSTOMER_NAME from CUST_ADDR GROUP BY CUSTOMER_NAME HAVING COUNT(DISTINCT CUSTOMER_ADDRESS) > 1 );

      +---------------+----------------------+
      | CUSTOMER_NAME | CUSTOMER_ADDRESS     |
      +---------------+----------------------+
      | Bob Yonkers   | 42 Satellite Cir     |
      | Bob Yonkers   | 667 Orbit St         |
      | Ruby Tuesday  | 123 Highway Ln Apt#1 |
      | Ruby Tuesday  | 123 Highway Ln       |
      +---------------+----------------------+
      4 rows in set (0.01 sec)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-02
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2020-03-19
        相关资源
        最近更新 更多