【问题标题】:SQL loop problemSQL循环问题
【发布时间】:2011-03-17 17:18:55
【问题描述】:

我有一个问题,我希望有人能提供帮助。 我不太擅长 sql 编程,所以我需要你们的帮助。

这是我的问题,我的客户代码可能有 2 或 3 个地址。 示例:

cust1  address1
cust1  address2
cust1  address3
cust2  address1
cust2  address2

我想在 .net 中生成这样的报告:

cust1  address1  address2  address3
cust2  address1  address2

有人可以帮忙吗?

【问题讨论】:

  • 听起来像一个数据透视查询,但最好有一个数据样本和基于该数据的预期输出。你怎么知道哪个地址是第一个/第二个/第三个/等等,这是什么数据库?
  • 如果您发布代码、XML 或固定表结构,在文本编辑器中突出显示这些行并单击编辑器上的“代码”按钮 (101 010)工具栏以很好地格式化和语法突出显示它!无需凌乱  标记的东西.....

标签: .net sql report while-loop


【解决方案1】:

这假设有 2 个表:

 select 
    custName, A1.Address + ' ' + A2.Address + ' ' + A3.Address
 from
    Customers as C
    inner join Address as A1 on A1.CustKey = C.CustKey
    inner join Address as A2 on A2.CustKey = C.CustKey and A1.AddressKey <> A2.Addresskey
    left join Address as A3 on A3.CustKey = C.CustKey and A3.AddressKey <> A1.AddressKey and A3.AddressKey <> A2.AddressKey

编辑显示:

假设有 1 个表:

 select 
    A1.Customer, 
    A1.Address + ' ' + A2.Address + ' ' + A3.Address
 from
    Customer as A1 
    inner join Customer as A2 on A2.CustKey = A.CustKey and A1.Address <> A2.Address 
    left join Customer as A3 on A3.CustKey = A.CustKey and A3.Address <> A1.Address and A3.Address <> A2.Address 

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 2019-05-10
    • 2014-08-22
    • 2016-01-04
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多