SQL Select语句多行

时间:2013-02-14 20:34:25

标签: sql select

我有两张表如下。

项目表。

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 个答案:

答案 0 :(得分: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获取每个项目的最新发票日期。假设这就是你想要的。

答案 1 :(得分: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小提琴here。请注意,我更改了Invoice表中的ProjectID以匹配Invoice表中的ProjectID。

答案 2 :(得分:0)

select
  *,
  sum(amount) as amount
from
  Project as p
  inner join Invoice as i
    on p.ProjectID = i.ProjectID
group by ProjectID

发票日期可能会有所不同。

答案 3 :(得分: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