我有两张表如下。
项目表。
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
我想我过度思考但需要帮助。
答案 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