【发布时间】:2016-12-21 13:42:01
【问题描述】:
我需要将 2 个 SQL 语句连接在一起,并且这两个语句都可以独立运行。但我不知道如何将两者组合成 1 个 SQL 语句。
我在第一条语句中有两个表,TR120 和 TR1201。
SQL 是这样的:
select
PRODUCT, PRICE, QUANTITY, INVOICE.DATE
from
TR1201
left join
(select
DATE, ID as INVOICE_ID, INVOICE
from TR120) as INVOICE on INVOICE.INVOICE_ID = ID
where
INVOICE.DATE >= '2016-06-01' and INVOICE.DATE <= '2016-06-30'
这将返回我售出的所有产品的列表,包括价格、数量和销售日期,具体时间范围为 16 年 1 月 6 日至 2016 年 6 月 30 日。
现在我需要根据第一条 SQL 语句中的产品和销售日期,在不同的两个表 TR100 和 TR1001 中找出我购买产品的最新价格。
select
PRODUCT, PRICE, SUP.DATE
from
TR1001
left join
(select
DATE, ID as SUP_ID, SUP_INVOICE
from TR100) as SUP on SUP.SUP_ID = ID
这将返回我购买的所有产品的列表,其中包含价格和日期。我只需要基于产品和购买日期的查询的最后一条记录。
TR120
ID | INVOICE | DATE
1 | 000001 |2016-06-05
2 | 000002 |2016-06-15
3 | 000003 |2016-06-25
TR1201
ID | PRODUCT | PRICE A | QUANTITY
1 | A | 2,00 | 5
2 | A | 2,00 | 2
3 | A | 2,00 | 1
TR100
ID | SUP_INVOICE | DATE
1 | 160001 | 2016-05-30
2 | 160002 | 2016-06-16
TR1001
ID | PRODUCT | PRICE B
1 | A | 0,5
2 | A | 0,7
我想要得到的结果是这样的:
PRODUCT | PRICE A (tr1201) | QUANTITY | DATE (tr100) | PRICE B (tr1001)
A | 2 | 5 | 2016-05-30 | 0,5
A | 2 | 2 | 2016-05-15 | 0,5
A | 2 | 1 | 2016-05-16 | 0,7
这就是我想做的一切:(
【问题讨论】:
标签: mysql