0

次のように2つのテーブルがあります。

プロジェクトテーブル。

ID      ProjectID      description      etc. 
1       4849           aaabbbb          etc. 

請求表。

ID      ProjectID      InvoiceNo      InvoiceDate      amount
1       4898           1234           01.01.01         200
2       4898           5678           02.02.02         475

私が必要とするのは次のとおりです。

ProjectID      Description      Invoicedate      amount
4898           aaabbbb          02.02.02         675

私はそれを考えすぎていると思いますが、助けが必要です。

4

4 に答える 4

2

合計でグループ化を使用します。

SELECT i.projectId, description, MAX(invoiceDate), SUM(amount)
   FROM invoice i
   JOIN project p ON p.projectId = i.projectId
   GROUP BY i.projectId;

max各プロジェクトの最新の請求日を取得するために使用することにしました。それがあなたが望んでいたものであると仮定します。

于 2013-02-14T20:38:00.977 に答える
1

次のようなことを試してください:

SELECT Project.ProjectID, Description, MAX(InvoiceDate), SUM(Amount)
FROM Project JOIN Invoice ON Project.ProjectID = Invoice.ProjectID
GROUP BY Project.ProjectID, Description

InvoiceDate が実際の でない場合はDATETIME、これを機能させるために変換するか、別の方法で最大 を取得する必要がありますInvoiceDate

ここでSQLフィドル。Invoice テーブルの ProjectID を Invoice テーブルの ProjectID と一致するように変更したことに注意してください。

于 2013-02-14T20:38:59.017 に答える
0
select
  *,
  sum(amount) as amount
from
  Project as p
  inner join Invoice as i
    on p.ProjectID = i.ProjectID
group by ProjectID

請求日は異なる場合があります。

于 2013-02-14T20:37:55.350 に答える
0

グループ化をどのように行いたいかは完全にはわかりませんが、次のようなものになる可能性があります

SELECT project.ProjectID, project.description, MAX(invoice.InvoiceDate), SUM(invoice.amount) FROM project JOIN invoice ON project.ProjectID = invoice.ProjectID WHERE project.ProjectID = 4898 GROUP BY project.ProjectID
于 2013-02-14T20:40:40.367 に答える