【发布时间】:2013-02-26 22:49:33
【问题描述】:
我正在编写的一个查询有一点问题。在 where 子句中,我有很多连接和提取的很多列,我将日期列与同一个表的最小值进行比较。但是当我得到两行相同的日期时,我只需要得到一行。 where 子句是这样的:
bt.da2 = (select min(btreg.da2) from bt btreg.....
查询结果很多客户,每个客户都有那个bt.da2日期。我需要当一个客户有两行,具有相同的 bt.da2 值时,我需要只取两行中的一个,而不是两行。 我可能解释不清楚。请如果有人知道我在问什么,有什么不清楚的地方,请问我。
我正在使用PostgreSQL 8.3
问候, 朱利安
【问题讨论】:
-
您需要提供更多详细信息:您正在使用的完整语句以及可能涉及的表的
create table语句。理想情况下是一个显示您当前问题的 SQLFiddle 示例 -
我很乐意给你看,没有问题,但它涉及32个表,我不能给你看所有的create table语句。基本上有一个产品表、一个客户表、一个付款表和银行转帐表(示例中的 bt 表)。我只是拿产品表,左加入银行转帐表,因为有些客户在同一日期有不止一个银行转帐,这就是为什么它显示两行或更多行,这是我想避免的事情。有没有办法“说”:如果有两个相同日期的转帐,只需返回其中一个,与谁无关。
-
您的表是否至少有一个唯一键列(或列的组合)注意:您至少应该将其中一个表的定义添加到问题中。注2:升级。
标签: sql postgresql