使用子查询进行查询并进行联接优化

科比

我对查询语句不满意,并且想知道是否还有其他更好的方法可以做到这一点:

SELECT product.product, 
 COALESCE((SELECT SUM(qty) FROM stocktrxn 
 INNER JOIN stock on stock.tra_no = stocktrxn.tra_no 
 WHERE product_no = s1.product_no and stock.is_out = false) - 
 (SELECT SUM(qty) FROM stocktrxn 
 INNER JOIN stock on stock.tra_no = stocktrxn.tra_no 
 WHERE product_no = s1.product_no and stock.is_out = true), 0)
 as qty
FROM stocktrxn s1
RIGHT JOIN product on product.id = s1.product_no
GROUP BY product ASC;
戈登·利诺夫(Gordon Linoff)

我认为您只需要条件聚合。像这样的东西:

SELECT p.product,
       (SUM(CASE WHEN s.is_out = false THEN qty ELSE 0 END) -
        SUM(CASE WHEN s.is_out = true THEN qty ELSE 0 END) -
       ) as qty
FROM product LEFT JOIN
     stocktrxn st
     ON p.id = st.product_no LEFT JOIN
     stock s
     ON s.tra_no = st.tra_n
GROUP BY p.product ASC;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linq使用多行子查询进行查询(无联接)

来自分类Dev

Spark SQL:使用子查询进行交叉联接

来自分类Dev

Django-如何使用左联接和合并进行复杂的查询?

来自分类Dev

Django-如何使用左联接和合并进行复杂查询?

来自分类Dev

在左联接中使用子查询时如何优化查询

来自分类Dev

结合查询进行查询优化

来自分类Dev

优化包含联接和子查询的查询

来自分类Dev

使用子查询对Linq进行SQL查询

来自分类Dev

如何在给定查询中使用内部联接并对其进行优化?

来自分类Dev

使用多个联接进行mysql查询

来自分类Dev

使用多个联接进行查询

来自分类Dev

使用LIKE语句进行查询优化

来自分类Dev

使用嵌套选择进行查询优化

来自分类Dev

使用Java在MongoDB中进行查询优化

来自分类Dev

使用联接优化 SQL 查询

来自分类Dev

如何对MySQL进行联接查询

来自分类Dev

优化 MySQL 查询以进行更新?

来自分类Dev

迭代数组并进行查询-MongoDB

来自分类Dev

使用子查询进行外部联接会更改mysql中的行数

来自分类Dev

如何使用子查询进行范围

来自分类Dev

使用子查询进行Oracle更新

来自分类Dev

使用返回多行的子查询进行更新

来自分类Dev

使用子查询进行Oracle更新

来自分类Dev

如何使用子查询进行范围

来自分类Dev

使用子查询进行平滑连接

来自分类Dev

在子查询中使用属性进行比较

来自分类Dev

在 hive 中使用 select 进行子查询

来自分类Dev

如何在MySQL中使用子查询为报表优化多个联接的查询

来自分类Dev

如何优化包含联接和子查询的查询