Беда SQL, нужно объединить 2 работоспособного кода - PullRequest
0 голосов
/ 28 мая 2019

у меня есть 2 запускаемых кода, но мне нужно объединить эти 2 кода в 1

SELECT `doc`.`date`,`doc`.`no`,`def`.`name`,`i`.`type`
FROM `documents` as `doc` 
    RIGHT JOIN `items` as `i` ON `i`.`document_id` = `doc`.`id` 
    RIGHT JOIN `definitions` as `def` ON `doc`.`type_id` = `def`.`id`
WHERE `doc`.`id`= 2 

это первый код, который у меня есть

SELECT `alacak`,`ödeme`,(`alacak` - `ödeme`) as `bakiye`
FROM (SELECT (SELECT IFNULL(SUM( `quantity` * `price` * `d`.`currency_value` / 100 ), 0) AS `alacak` FROM `items` as `i`
        RIGHT JOIN `documents` as `d` ON `d`.`id` = `i`.`document_id` WHERE `d`.`type_group` = 'sales') as `alacak`,
        (SELECT IFNULL(SUM( `quantity` * `price` * `d`.`currency_value` / 100 ), 0) AS `ödeme` FROM `items` as `i`
        RIGHT JOIN `documents` as `d` ON `d`.`id` = `i`.`document_id` WHERE `d`.`type_group` = 'purchases') as `ödeme`) as  `table

, и это второй

Мне нужно объединить эти 2 кода и получить 1 рабочий код.

1 Ответ

0 голосов
/ 29 мая 2019

Вы можете получить общее представление о соединении обоих сценариев в один из приведенных ниже сценариев.Но вам нужно настроить / решить, какой столбец требуется в части выбора, поскольку их также необходимо добавить в предложение GROUP BY, и результат изменится -

SELECT `doc`.`date`,`doc`.`no`,`def`.`name`,`i`.`type`,
IFNULL(SUM( CASE WHEN  `d`.`type_group` = 'sales' THEN (`quantity` * `price` * `d`.`currency_value`) / 100 ELSE 0 END ), 0) AS `alacak` ,
IFNULL(SUM( CASE WHEN  `d`.`type_group` = 'purchases' THEN (`quantity` * `price` * `d`.`currency_value`) / 100 ELSE 0 END ) , 0) AS  `ödeme` ,

IFNULL(SUM( CASE WHEN  `d`.`type_group` = 'sales' THEN (`quantity` * `price` * `d`.`currency_value`) / 100 ELSE 0 END ), 0)
-
IFNULL(SUM( CASE WHEN  `d`.`type_group` = 'purchases' THEN (`quantity` * `price` * `d`.`currency_value`) / 100 ELSE 0 END ) , 0)
as `bakiye`
FROM `items` as `i`
RIGHT JOIN `documents` as `d` ON `d`.`id` = `i`.`document_id` 
RIGHT JOIN `definitions` as `def` ON `doc`.`type_id` = `def`.`id`
WHERE `d`.`id`= 2 
GROUP BY `d`.`date`,`d`.`no`,`def`.`name`,`i`.`type`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...