首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用两个表在查询中获取和

使用两个表在查询中获取和
EN

Stack Overflow用户
提问于 2013-06-11 07:35:08
回答 3查看 77关注 0票数 1

我需要TrasactionPaymentsDetails的金额

代码语言:javascript
复制
    DECLARE @mydate DATETIME
SELECT @mydate = '2012-07-28'

select sum(rd.Amount) as total,rp.TransactionCode, rp.ReferenceDate,rp.TransactionFlag,rd.Amount

 from ReceiptsPayments rp,ReceiptsPaymentsDetail rd where 
ReferenceDate >= DATEADD(dd,1-day(@mydate),@mydate)
and ReferenceDate <= DATEADD(dd,0-day(DATEADD(mm,1,@mydate)),DATEADD(mm,1,@mydate))
and TransactionFlag='P';

以下是错误。请帮帮忙

Msg 8120、级别16、状态1、第6行列'ReceiptsPaymentsDetail.TransactionCode‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP子句中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-11 07:48:08

试试这个-

代码语言:javascript
复制
DECLARE @mydate DATETIME
SELECT @mydate = '20120728'

SELECT  
      total = SUM(rd.Amount) 
    , rp.TransactionCode
    , rp.ReferenceDate
    , rp.TransactionFlag
FROM dbo.ReceiptsPayments rp
JOIN dbo.ReceiptsPaymentsDetail rd ON ON rp.ID = rd.ReceiptPaymentsID
WHERE ReferenceDate >= DATEADD(dd, 1 - DAY(@mydate), @mydate)
    AND ReferenceDate <= DATEADD(dd, - DAY(DATEADD(mm, 1, @mydate)), DATEADD(mm, 1, @mydate))
    AND TransactionFlag = 'P'
GROUP BY 
      rp.TransactionCode
    , rp.ReferenceDate
    , rp.TransactionFlag
票数 1
EN

Stack Overflow用户

发布于 2013-06-11 07:38:06

您需要GROUP BY

代码语言:javascript
复制
DECLARE @mydate DATETIME

SELECT @mydate = '2012-07-28'

SELECT Sum(rd.amount) AS total,
       rp.transactioncode,
       rp.referencedate,
       rp.transactionflag
FROM   receiptspayments rp,
       INNER JOIN receiptspaymentsdetail rd ON rp.id=rd.receiptpaymentsid
WHERE  referencedate >= Dateadd(dd, 1 - Day(@mydate), @mydate)
       AND referencedate <= Dateadd(dd, 0 - Day(Dateadd(mm, 1, @mydate)),
                            Dateadd(mm, 1, @mydate))
       AND transactionflag = 'P'
GROUP  BY rp.transactioncode,
          rp.referencedate,
          rp.transactionflag;  

此外,您还需要链接您的表,以避免生成CROSS JOIN,我认为这不是您想要的。我以为在您的Id表中有一个receiptpaymentsreceiptpaymentsdetails中有一个FK,因此出现了INNER JOIN

票数 3
EN

Stack Overflow用户

发布于 2013-06-11 07:39:04

在最后一个Group By条件之后将where子句添加到语句中:

代码语言:javascript
复制
Group By rp.TransactionCode, rp.ReferenceDate,rp.TransactionFlag
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17038787

复制
相关文章

相似问题

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