首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sybase比较具有重复行ids的列

Sybase比较具有重复行ids的列
EN

Stack Overflow用户
提问于 2013-07-27 16:31:16
回答 1查看 409关注 0票数 0

到目前为止,我有一个带有几个列的结果集(在临时表中)的查询,但我只关心四个列。一个是客户ID(varchar),一个是日期(小时间),一个是金额(货币),另一个是Type(char)。我有多个行,具有相同的custmer,并希望根据日期、数量和类型对它们进行评估。例如:

代码语言:javascript
复制
Customer ID     Date          Amount           Type 

   A           1-1-10          200             blue           
   A           1-1-10          400             green           
   A           1-2-10          400             green           
   B           1-11-10         100             blue            
   B           1-11-10         100             red             

对于所有出现的A,我想比较它们只识别一个,首先在最早的日期,然后以最大的数量,如果仍然被比较类型所束缚。然后,我将为每个客户返回一行。

我会提供一些查询,但我现在在家,花了两天时间试图得到一个正确的结果。看起来是这样的:

代码语言:javascript
复制
(query to populate #tempTable)
GROUP BY customer_id
HAVING date_cd =
    (SELECT MIN(date_cd)
     FROM order_table ot
     WHERE ot.customerID = #tempTable.customerID
     )
OR date_cd IS NULL

我假设每个customer_id只会产生一行。结果并不是这样,因为那里有一些联系。

我不确定我能不能做OR --这里有一些值为空--如果它们都是相同的,它也没有考虑到下一个比较的步骤。我没有看到一种避免使用IF或WHERE循环对temp表进行行处理的方法。

在我写作的时候,我在想,也许我在HAVING子句中使用了#tempTable.date_cd,而不是查看原始表。但是应该返回相同的日期吗?

我是在正确的轨道上,还是缺少了什么东西?有什么建议吗?更多信息?

EN

回答 1

Stack Overflow用户

发布于 2013-07-30 13:06:48

尝试以下查询:-

通过具有isnull的customer_id (date_cd,"1900/01/01") =min(isnull(date_cd,"1900/01/01"))选择* from组

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17900042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档