我有一张包含合同和客户地址的表格。 每个地址都有一列声明addresstype(合同或客户) 和另一列合同号或客户编号
现在我想以下列方式选择此表。 查询参数是contract-Number和相应的customer-number
如果存在给定合同的合同地址 - 编号,则选择它们 如果还有此合同号和相应的客户编号 客户地址不选择它们
如果没有给定合同的合同地址 - 那么 选择相应客户编号的客户地址。
我不知道该怎么做。 可能的?
BR 埃里克
编辑2016/07/14:
之后对上述问题进行了一些澄清。 给出的是下表
CustomerID ObjectType ObjectID ADDR1 ADDR2 ADDR3 .....
10000 1 10000 ssdf 34543 dfgdf
10000 1 10000 dfgg kjh jkhjkh
10000 2 23212 kljklj lkjlkj lkjlkj
10000 2 23213 kljklj lkjlkj lkjlkj
10001 1 10001 ssdf 34543 dfgdf
10001 1 10001 dfgg kjh jkhjkh
10001 2 23212 kljklj lkjlkj lkjlkj
10001 2 23213 kljklj lkjlkj lkjlkj
10002 1 10001 ssdf 34543 dfgdf
10002 1 10001 dfgg kjh jkhjkh
当我对此表进行选择时,我希望每个CustomerID只包含ObjectType = 2的记录。
如果没有ObjectType = 2的记录集,则select必须返回ObjectType = 1的所有记录集。
我希望现在这是可以理解的。
例如:
BR 埃里克
答案 0 :(得分:0)
- 1。创建快速临时表
select CustomerID, max(ObjectType) into #MaxObjects from MyTable --Replace MyTable with whatever your table name is
- 2。基于该表的内部联接到您的原始。
select t1.* from MyTable as t1
内连接#MaxObjects as mo on t1.CustomerID = mo.CustomerID and t1.ObjectType = mo.ObjectType