Как объединять многообразные подмостки в MySQL?

Я реализую основное приложение контроля покупок и продаж и пробую реализовывать консультацию для того, чтобы меня вытекли тип инвентарь, но у меня не был какой-либо результат. Это моя консультация в mysql:

SELECT p.descripcion AS 'producto',SUM(dv.cantidad) AS 'salida'
FROM ventas v INNER JOIN detalle_ventas dv ON v.codigo_ventas=dv.codigo_ventas
INNER JOIN producto p ON p.codigo_producto=dv.codigo_producto
GROUP BY p.descripcion

introducir la descripción de la imagen aquí

-- Quiero unirlas y me salgan horizontal

SELECT p.descripcion AS 'producto',SUM(dc.cantidad) AS 'entrada'
FROM compras c INNER JOIN detalle_compras dc ON c.codigo_compras=dc.codigo_compras
INNER JOIN producto p ON p.codigo_producto=dc.codigo_producto
GROUP BY p.descripcion

Я хочу, чтобы это меня вышло так:

introducir la descripción de la imagen aquí

Я хочу объединить обе консультации, которые мне возвращает проданное количество и в другой консультации он возвращает мне количество покупает, и что у меня остался способа horizantal. В обеих консультациях, когда они один с СОЮЗОМ у меня остается один под другой (костлявая вертикально).

5
задан 15.04.2016, 21:33
2 ответа

Сначала я буду давать тебе подсказки относительно консультаций, которые ты помещаешь примера:

  1. Если ты не нуждаешься в информации о таблице ventas или compras, тогда не помещай их внутри консультации (Однако я думаю, что ты можешь нуждаться в них, чтобы выдавать ранги дат например).

  2. По возможности не группируй консультации с описаниями или именами, старайся использовать всегда коды, чтобы группировать. В твоем случае смоги перемещать, что у двух продукт было то же описание, и в момент группирования их он показал бы их как один и это было бы плохое, так как это два отличных продукта.

Сейчас я помещаю тебе пример, как ты мог бы реализовывать это. Здесь сначала один информация о продажах и покупки, но я распределяю им тип, потом atraves субконсультации я оцениваю тип, чтобы знать, ли введены они или вышлись.

SELECT p.descripcion as producto, SUM(IF(tipo=0,m.cantidad,0)) entradas, SUM(IF(tipo=1,m.cantidad,0)) salidas, SUM(IF(tipo=0, m.cantidad, -m.cantidad)) stock
FROM
(
   SELECT 0 As tipo, dc.codigo_producto, dc.cantidad
   FROM compras c INNER JOIN detalle_compras dc ON c.codigo_compras=dc.codigo_compras
   UNION ALL
   SELECT 1 As tipo, dv.codigo_producto,dv.cantidad
   FROM ventas v INNER JOIN detalle_ventas dv ON v.codigo_ventas=dv.codigo_ventas
) AS m INNER JOIN producto p ON m.codigo_producto = p.codigo_producto
GROUP BY p.codigo_producto
4
ответ дан 24.11.2019, 14:35
  • 1
    Спасибо за подсказки, tendr и # 233; в счете, adem и # 225; s спасибо за помощь, с Вашим ответом я смог решать это. – Juan Vásquez Ventura 15.04.2016, 23:35
  • 2
    OK, меня радует это. Помни что характеризуй ответ как правильная. – Weimar Yamit Moreno Perez 15.04.2016, 23:38

Твоя консультация SQL tendrГ - в который быть:

SELECT p.descripcion AS 'producto', SUM(dc.cantidad) AS 'entrada', SUM(dv.cantidad) as 'salida'
FROM detalle_compras dc
INNER JOIN detalle_ventas dv on dv.codigo_producto = dc.codigo_producto
INNER JOIN producto p ON p.codigo_producto = dc.codigo_producto
GROUP BY p.descripcion

ты Должен использовать 3 подмостков, если ты хочешь увидеть данные в единственном результате.

2
ответ дан 24.11.2019, 14:35

Теги

Похожие вопросы