我正在使用MS-ACCESS。我有一个字段为Receipt_No的表。在这个领域中,有很多次重复的值。我只想显示这个重复的值一次,而不是多次显示它。 这是我的表:
Registration_No Payment_Date Charges Receipt_No
T-11 8/7/2011 200 105
T-12 8/7/2011 200 106
T-13 7/12/11 200 107
T-14 12/7/2011 200 108
T-15 12/7/2011 400 108
此处在Receipt_No字段108中出现2次我想只显示一次:(收费200或400.但Receipt_No应显示一次):请帮助我..
Registration_No Payment_Date Charges Receipt_No
T-11 8/7/2011 200 105
T-12 8/7/2011 200 106
T-13 7/12/11 200 107
T-14 12/7/2011 200 108
答案 0 :(得分:1)
如果您只想显示表格中只有一次出现的收据编号的记录,请使用以下查询:
select * from Demand
where reg_no in (
select reg_no
from Demand
group by reg_no
having count(*) = 1
)
根据您提供的说明,看起来您想要的更像是this question,您想要返回所有字段,但每个收据编号只有一条记录。以下是accepted answer的变体:
select * from demand
inner join
(
select
receipt_no,
min(charges) AS min_charges
from
demand
group by
receipt_no
) sq
on demand.receipt_no = sq.receipt_no
and demand.charges = sq.min_charges
请注意,这仍然不是您想要的:如果有两个或更多记录具有相同的receipt_no和费用值,则此查询将全部返回。
部分问题是您的表格没有明确定义:它似乎没有一个对每条记录都唯一的字段。使用这样的字段,您可以修改上面的查询,为每个receipt_no返回一行。 (问题的另一部分是业务要求似乎缺少某些东西:通常,我们希望报告收据中的总费用,或收据中的每笔费用。)
答案 1 :(得分:0)
由于您没有提供许多详细信息,但使用SELECT DISTINCT
忽略了所选字段中包含重复数据的记录,因此不确定您的查询中究竟需要什么。要包含在查询结果中,SELECT
语句中列出的每个字段的值必须是唯一的。
请参阅MS Access Docs了解更多详情
但是作为示例,以下查询将选择所有LastNames,但它将删除重复值。
SELECT DISTINCT LastName
FROM Employees;