首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据组中的一条记录选择一组记录

根据组中的一条记录选择一组记录
EN

Stack Overflow用户
提问于 2011-02-24 12:17:08
回答 1查看 284关注 0票数 0

我似乎被一个问题卡住了。我使用Crystal Reports 2008从MS-SQL数据库中提取记录列表。涉及到两个表(它们包含订阅者的订单数据)。第一个表是OrderMst,第二个是OrderDtl。它们由两个字段连接: Account和SubNumber。每个帐号有多个SubNumbers,每个SubNumber有多个InvoiceNumbers。每个发票行都有一列,告诉我它是否是最新的发票。我需要查看此记录以确定客户是活动的、已取消的还是已过期的。然后,根据它们的状态,我需要选择该SubNumber的所有发票。我被困在试图找出一种方法来做到这一点。

下面是一个例子:

OrderMst:

代码语言:javascript
复制
Account     SubNumber Pub
72781651    0025      NAVL
72781651    0012      RYIR
72781651    0001      RHCS
80156287    0015      VGFA
80156287    0012      NAVL

OrderDtl:

代码语言:javascript
复制
Account     SubNumber InvoiceNumber PubStatus RenewalThere
72781651    0025      15894578      A         0
72781651    0025      15754897      R         1
72781651    0025      15753412      R         1
72781651    0012      15753357      C         0
72781651    0012      15749875      R         1
72781651    0001      15465874      X         0
72781651    0001      15425789      R         1
80156287    0015      15656738      A         0
80156287    0012      15387956      C         0
80156287    0012      15324568      R         1

因此,如果我要查找活动订阅的所有发票的计数,我将选择{OrderDtl.RenewalThere} = 0,我的报告结果将显示Account 72781651 SubNumber 0025有3张发票,Account 80156287 SubNumber 0015有1张发票。这就是我被卡住的地方。我需要使用一个发票级别记录来告诉我我想要哪个订阅,然后获取该发票的所有发票级别记录。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-24 14:51:58

你想要的是一个半连接:

代码语言:javascript
复制
SELECT Account, SubNumber, COUNT(*)
  FROM OrderDtl
 WHERE EXISTS (
   SELECT *
     FROM OrderDtl AS a
    WHERE a.Account = OrderDtl.Account
      AND a.SubNumber = OrderDtl.SubNumber
      AND a.PubStatus = 'A'
      AND a.RenewalThere = 0
)
GROUP BY Account, SubNumber

HTH

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

https://stackoverflow.com/questions/5100291

复制
相关文章

相似问题

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