首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值选择。需要帮助

值选择。需要帮助
EN

Stack Overflow用户
提问于 2009-10-28 11:46:21
回答 5查看 842关注 0票数 0

商业世界1256987月刊2009年10 -10-28

商业世界1256987月刊10 2009-09-23

商业世界1256987月刊2009年-08-18

Linux 4 u 456734月刊25 2009-12-24

Linux 4 u 456734月刊25 2009-11

Linux 4 u 456734月刊25 2009-10-28

我通过查询得到这个结果:

代码语言:javascript
复制
SELECT DISTINCT ljm.journelname,ljm. subscription_id,
    ljm.frequency,ljm.publisher, ljm.price, ljd.receipt_date 
FROM lib_journals_master ljm,
    lib_subscriptionhistory 
    lsh,lib_journal_details ljd 
WHERE ljd.journal_id=ljm.id 
ORDER BY ljm.publisher

我需要的是每本日记的最新日期?

我尝试了这个查询:

代码语言:javascript
复制
SELECT DISTINCT ljm.journelname, ljm.subscription_id,
    ljm.frequency, ljm.publisher, ljm.price,ljd.receipt_date
FROM lib_journals_master ljm,
    lib_subscriptionhistory lsh,
    lib_journal_details ljd
WHERE ljd.journal_id=ljm.id 
AND ljd.receipt_date = (
    SELECT max(ljd.receipt_date) 
    from lib_journal_details ljd)

但它给了我整个专栏的最大值。我需要的结果将有两个日期(每个杂志的最大日期),但这个查询只给我一个?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-28 11:53:25

您应该使用组,如果您需要最大的日期。应该是这样的:

代码语言:javascript
复制
SELECT 
   ljm.journelname
   , ljm.subscription_id
   , ljm.frequency
   , ljm.publisher
   , ljm.price
   , **MAX(ljd.receipt_date)**
FROM 
   lib_journals_master ljm
   , lib_subscriptionhistory lsh
   , lib_journal_details ljd
WHERE 
   ljd.journal_id=ljm.id 
GROUP BY 
   ljm.journelname
   , ljm.subscription_id
   , ljm.frequency
   , ljm.publisher
   , ljm.price
票数 0
EN

Stack Overflow用户

发布于 2009-10-28 11:55:26

您可以更改WHERE语句以查找每本日记的最后日期:

代码语言:javascript
复制
AND ljd.receipt_date = (
    SELECT max(subljd.receipt_date) 
    from lib_journal_details subljd
    where subljd.journelname = ljd.journelname)

确保子查询中的表与主查询中的表有不同的别名。

票数 1
EN

Stack Overflow用户

发布于 2009-10-28 12:04:55

像这样的东西应该对你有用。

代码语言:javascript
复制
SELECT ljm.journelname
       , ljm.subscription_id
       , ljm.frequency
       , ljm.publisher
       , ljm.price
       ,md.max_receipt_date
FROM lib_journals_master ljm
    , (    SELECT journal_id
            , max(receipt_date) as max_receipt_date
           FROM lib_journal_details 
           GROUP BY journal_id) md
WHERE ljm.id = md.journal_id
/

请注意,我已经从from子句中删除了这些表,该子句对查询没有任何贡献。如果yopu为了我们的利益简化了您的场景,您可能需要替换它们。

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

https://stackoverflow.com/questions/1636758

复制
相关文章

相似问题

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