SQL - 在另一个 SELECT 的 WHERE 子句中使用 SELECT
Posted
技术标签:
【中文标题】SQL - 在另一个 SELECT 的 WHERE 子句中使用 SELECT【英文标题】:SQL - Using SELECT in the WHERE clause of another SELECT 【发布时间】:2016-10-24 10:14:30 【问题描述】:我有下一个查询
select No,
Description,
Item,
Date
from myTable1
得到
只有一个选择
select * from myTable2
得到
现在我需要从 MyTable1 中选择所有数据并加入 MyTable2
得到数量的总和
按NO和ITEM分组
其中 MyTable2.Date
有什么想法吗?
我想要这张桌子
【问题讨论】:
到目前为止您尝试过什么?根据给定的示例提供预期结果总是更好 也向我们展示预期的结果。 (使用该输入数据。) 我不知道 如果您到目前为止尝试过任何事情,请分享查询。 问题还不清楚 【参考方案1】:试试这个让你开始,没有更多信息很难得出准确的答案:
SELECT T1.No
, T1.Item
, SUM(T2.Quantity)
, MIN(T1.Date) as Date FROM mytable1 T1
INNER JOIN mytable2 T2
ON T1.No = T2.No AND T1.Item = T2.Item AND T2.Date <= T1.Date
GROUP BY T1.No, T1.Item
【讨论】:
【参考方案2】:试试这个:
select t1.*,sum(t2.quantity)
from myTable1 t1
INNER JOIN mytable2 t2 on t2.no = t1.no and t2.item=t1.item
WHERE t2.date<=t1.date
GROUP BY t1.No,t1.item
【讨论】:
【参考方案3】:试试这个。
SELECT
T1.No,
t1.Description ,
T1.Item,
MIN(T1.Date) as Date ,
SUM(T2.Quantity) as Quantity
FROM Table1 T1 INNER JOIN Table2 T2
ON T1.No = T2.No AND T1.Item = T2.Item AND T2.Date <= T1.Date
GROUP BY T1.No, T1.Item , T1.Description
如果您有任何疑问,请告诉我们。
【讨论】:
【参考方案4】:SELECT No,Description,Item,Date,sum(t2.quantity) 来自 myTable1 在 myTable1.No = myTable2.No 和描述 = 项目上加入 myTable2 WHERE MyTable2.Date
【讨论】:
【参考方案5】:试试这个:
SELECT T1.No, T1.Description, T1.Item, T1.Date, sum(T2.Quantity)
FROM myTable1 T1
LEFT JOIN myTable2 T2
ON T1.No = T2.No AND T1.Item = T2.Item AND T1.Date >= T2.Date
GROUP BY T1.No, T1.Item;
【讨论】:
以上是关于SQL - 在另一个 SELECT 的 WHERE 子句中使用 SELECT的主要内容,如果未能解决你的问题,请参考以下文章
MySQL SELECT * FROM ... WHERE ... ORDER BY '哪一个在另一个表中有最新记录'
Sql 函数,我在另一个“where 语句”中对一组数据使用“where 语句”
在另一个 where 语句(子查询?)中使用一个 sql 查询的结果