2017-01-12 3 views
0

Может кто-нибудь объяснить следующее.Sql 2 внутренний соединяет другой результат данных

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?

+0

Tag СУБД вы используете , – jarlh

+0

Что это значит: «запасной результат 200»? –

+0

Я использую базу данных Mysql –

ответ

0

Похоже вопрос о 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' 
+0

Работал для меня, спасибо! –

Смежные вопросы