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

得到数量的总和

NOITEM分组

其中 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编程之高级查询及注意事项

Sql 函数,我在另一个“where 语句”中对一组数据使用“where 语句”

在另一个 where 语句(子查询?)中使用一个 sql 查询的结果

SQL:查询一个表的字段在另一个表里是不是存在;怎么写最优化;

SQL数据查询之——嵌套查询