有条件地使用辅助表中的另一个值,否则使用第一个表中的值

用户名

我正在寻找一种快速方法/方式,如果在上述产品上确实存在折扣,则可以使用辅助表中的折扣价,否则我想使用第一个表价。

我用##########标记的部分是我被卡住的地方...。该怎么办?

目前我所拥有的是:

SELECT
 cat.`CategoryId` AS CategoryId
 ,prod.`ProductId` AS ProductId
 ,COUNT(prod.`ProductId`)AS product_count
 ,prod.`Price` AS price
 ,adj.`ProductPrice` AS Adj_Price

 FROM ax_category cat
 INNER JOIN xx_products prod USING(categoryid)
 INNER JOIN xx_subcategory sc ON(prod.Subcategoryid = sc.SubCategoryId)
 INNER JOIN xx_services s USING(productid)
 LEFT JOIN xx_invoiceline il USING(serviceid)
 LEFT JOIN xx_invoices i USING(invoiceid)
 #LEFT JOIN xx_adjustments adj ON (s.`ProductId` = adj.`ProductId` AND s.`Quantity` = adj.`Quantity`)
 LEFT JOIN xx_adjustments adj ON (s.`ProductId` = adj.`ProductId` AND s.`Quantity` = adj.`Quantity`)
 WHERE DATE_FORMAT(s.DateEnd,'%Y-%m') = '2013-11'

############################################
IF EXISTS(
SELECT a.`ProductPrice` AS price 
FROM xx_adjustments AS a
WHERE a.`ProductId` = '999'
#limit 1
)
############################################


GROUP BY prod.`ProductId`
埃德珀

您可以使用COALESCE()

SELECT
cat.`CategoryId` AS CategoryId
,prod.`ProductId` AS ProductId
,COUNT(prod.`ProductId`)AS product_count
,prod.`Price` AS price
,adj.`ProductPrice` AS Adj_Price
,COALESCE(adj.`ProductPrice`, prod.`Price`) AS discountedPrice
FROM ax_category cat
INNER JOIN xx_products prod USING(categoryid)
INNER JOIN xx_subcategory sc ON(prod.Subcategoryid = sc.SubCategoryId)
INNER JOIN xx_services s USING(productid)
LEFT JOIN xx_invoiceline il USING(serviceid)
LEFT JOIN xx_invoices i USING(invoiceid)
#LEFT JOIN xx_adjustments adj ON (s.`ProductId` = adj.`ProductId` AND s.`Quantity` = adj.`Quantity`)
LEFT JOIN xx_adjustments adj ON (s.`ProductId` = adj.`ProductId` AND s.`Quantity` = adj.`Quantity`)
WHERE DATE_FORMAT(s.DateEnd,'%Y-%m') = '2013-11'
GROUP BY prod.`ProductId`

在这里看到一个简单的例子

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel公式仅使用另一个工作表上的列中的第一个值

来自分类Dev

R-有条件地用另一个数据框中的值替换值

来自分类Dev

有条件地选择行并有条件地插入到另一个表中

来自分类Dev

MySQL:根据另一个表中的第一个值选择表中的值

来自分类Dev

根据另一个值有条件地映射 LINQ 中的新属性

来自分类Dev

根据另一个键的值有条件地打印值

来自分类Dev

使用For循环根据另一个矩阵的值有条件地填充矩阵

来自分类Dev

在另一个表中具有条件的Phalcon模型find()

来自分类Dev

MySQL项目设计-根据另一个选择查询中的行有条件地从一个表中选择

来自分类Dev

从另一个表返回的值与第一个表的值匹配

来自分类Dev

有条件地根据另一个变量设置一个变量的值

来自分类Dev

使用 MySQL 从具有条件和 ID 的另一个表更新表

来自分类Dev

有条件地用另一个数据帧中的值替换数据帧中的值

来自分类Dev

在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

来自分类Dev

在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

来自分类Dev

从另一个数据框中减去具有条件的数据框中的值

来自分类Dev

如何根据另一个变量的值有条件地更改变量的值?

来自分类Dev

根据另一个有条件的表更新表

来自分类Dev

如何在SQL Server中使用另一个表上的值的条件来更新表中的值

来自分类Dev

有条件地在数据框中填充一个值

来自分类Dev

使用合并从2个表中返回第一个非空值

来自分类Dev

如何基于MongoDB聚合中数组内的另一个字段有条件地为父字段设置值?

来自分类Dev

AngularJS-有条件地将使用ng-style的样式应用于ng-repeat中的第一个元素

来自分类Dev

从R中的另一个列表创建具有条件值的新列表(子列表)

来自分类Dev

如何使用一个按钮将值插入表并在另一个表中更新值?

来自分类Dev

有条件地将特定列复制到另一个工作表

来自分类Dev

有条件地检查一个有时可能不确定的值是否不等于另一个值?

来自分类Dev

使用另一个表中的值更新ms-access表中的值

来自分类Dev

使用MariaDB循环将一个表中的行与另一个表中的值插入

Related 相关文章

  1. 1

    Excel公式仅使用另一个工作表上的列中的第一个值

  2. 2

    R-有条件地用另一个数据框中的值替换值

  3. 3

    有条件地选择行并有条件地插入到另一个表中

  4. 4

    MySQL:根据另一个表中的第一个值选择表中的值

  5. 5

    根据另一个值有条件地映射 LINQ 中的新属性

  6. 6

    根据另一个键的值有条件地打印值

  7. 7

    使用For循环根据另一个矩阵的值有条件地填充矩阵

  8. 8

    在另一个表中具有条件的Phalcon模型find()

  9. 9

    MySQL项目设计-根据另一个选择查询中的行有条件地从一个表中选择

  10. 10

    从另一个表返回的值与第一个表的值匹配

  11. 11

    有条件地根据另一个变量设置一个变量的值

  12. 12

    使用 MySQL 从具有条件和 ID 的另一个表更新表

  13. 13

    有条件地用另一个数据帧中的值替换数据帧中的值

  14. 14

    在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

  15. 15

    在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

  16. 16

    从另一个数据框中减去具有条件的数据框中的值

  17. 17

    如何根据另一个变量的值有条件地更改变量的值?

  18. 18

    根据另一个有条件的表更新表

  19. 19

    如何在SQL Server中使用另一个表上的值的条件来更新表中的值

  20. 20

    有条件地在数据框中填充一个值

  21. 21

    使用合并从2个表中返回第一个非空值

  22. 22

    如何基于MongoDB聚合中数组内的另一个字段有条件地为父字段设置值?

  23. 23

    AngularJS-有条件地将使用ng-style的样式应用于ng-repeat中的第一个元素

  24. 24

    从R中的另一个列表创建具有条件值的新列表(子列表)

  25. 25

    如何使用一个按钮将值插入表并在另一个表中更新值?

  26. 26

    有条件地将特定列复制到另一个工作表

  27. 27

    有条件地检查一个有时可能不确定的值是否不等于另一个值?

  28. 28

    使用另一个表中的值更新ms-access表中的值

  29. 29

    使用MariaDB循环将一个表中的行与另一个表中的值插入

热门标签

归档