【问题标题】:Sql 2 inner joins other data outcomesql 2 内连接其他数据结果
【发布时间】:2017-01-12 12:05:32
【问题描述】:

有人可以解释以下内容。

SELECT results.`referentie`,products.`categorie`,products.`url`,products.`inkoopPrijs`,SUM(results.`stockverschil`) AS 'stockverschil'
    FROM `results` results
    INNER JOIN products
    ON products.`referentie` = results.`referentie` 
    WHERE results.`datum` BETWEEN '2017-01-11' AND '2017-01-12' AND results.`referentie`= '1'    

结果是stockverschil 结果为 200。(正确的数量)

SELECT results.`referentie`,products.`categorie`,products.`url`,products.`inkoopPrijs`,sold.`winstPerProductPerDag`,SUM(results.`stockverschil`) AS 'stockverschil'
    FROM `results` results
    INNER JOIN products
    ON products.`referentie` = results.`referentie` 
    INNER JOIN sold
    ON sold.`referentie` = results.`referentie`
    WHERE results.`datum` BETWEEN '2017-01-11' AND '2017-01-12' AND results.`referentie`= '1'

结果是 stockverschil 结果为 4800。 我在 INNER JOIN 上做错了吗?

【问题讨论】:

  • 标记您正在使用的 dbms。
  • 这是什么意思:“stockverschil 结果为 200”?
  • 我用的是Mysql数据库
  • 我数据库中的一个字段,在荷兰语中它代表“库存差异”

标签: mysql sql database inner-join


【解决方案1】:

似乎是sold 的一个问题,是一对[产品] 对多[已售] 的关系

试试这个,用SUM(sold.winstPerProductPerDag)的适当聚合函数

SELECT results.`referentie`,products.`categorie`,products.`url`,products.`inkoopPrijs`,s.`winstPerProductPerDag`,SUM(results.`stockverschil`) AS 'stockverschil'
FROM `results` results
INNER JOIN products
ON products.`referentie` = results.`referentie` 
INNER JOIN ( select SUM(sold.`winstPerProductPerDag`) as `winstPerProductPerDag`, sold.`referentie` from sold group by sold.`referentie`) s on s.`referentie` = results.`referentie`
WHERE results.`datum` BETWEEN '2017-01-11' AND '2017-01-12' AND results.`referentie`= '1'

【讨论】:

  • 为我工作,谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-09-03
  • 2022-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 2021-05-03
相关资源
最近更新 更多