Sql在同一个表上匹配精确的DataSet

时间:2015-07-08 23:45:48

标签: sql merge correlated-subquery

我有一个包含以下数据的表:

#gems {
    margin: 60px 30px 0 30px     
}

#gems > .ui-slider-handle {
    text-decoration: none;
    width: 35px;
    text-align: center;
}

我正在尝试编写一个给我替换商店的查询,因此商店d销售所有存储商品的产品,它可能是商店的替代品,但商店不能替代商店d,因为它没有所有的产品商店销售。

因此查询将返回下表:

var
  CallStack: TEurekaBaseStackList;
begin
  CallStack := GetTracer(TracerWindows);
  try
    // Build current call stack including current execution point
    CallStack.Build(CallStack.GetCurrentInstruction);
    // ... use CallStack somehow
  finally
    FreeAndNil(CallStack);
  end;
end;

*注意我无法弄清楚如何制作一张桌子,所以','表示列的分隔。 - 等于空格中的空白

1 个答案:

答案 0 :(得分:0)

这是一个有效的版本:

select sp.store, sp2.store
from (select sp.*, count(*) over (partition by store) as numproducts
      from @storeproduct sp
     ) sp join
     @storeproduct sp2
     on sp.product = sp2.product and sp.store <> sp2.store
group by sp.store, sp2.store, numproducts
having count(sp2.product) = numproducts;

Here是SQL小提琴。