SQL Server - Duda con consulta utilizando inner join

 
Vista:
Imágen de perfil de Roberto
Val: 3
Ha aumentado 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Duda con consulta utilizando inner join

Publicado por Roberto (2 intervenciones) el 21/06/2017 17:52:47
Les comento, tengo 2 tablas la primera se llama adicionales y la segunda se llama comandas.

En la tabla de adicionales mi diseño es de la siguiente manera:
Nombre Tipo
cveAdicional int (llave primaria)
descripción varchar
cveTipoAd int
precio double
fecha date
hora time
fehamod date
horamod time

Contenido de la tabla adicionales:
adicionales

En la tabla de comandas mi diseño es de la siguiente manera:

Nombre Tipo
cveOrden int (llave primaria)
folio varchar
cveMenu int
cveMesa int
comentarios text
fecha date
hora time
status int
horacocina time
adic1 int
cantadic1 int
adic2 int
cantadic2 int
adic3 int
cantadic3 int
adic4 int
cantadic4 int
adic5 int
cantadic5 varchar


Contenido de la tabla comandas:
comandas

Al realizar mi consulta tengo el siguiente codigo:

SELECT DISTINCT comandas.cveOrden, menus.titulo, menus.precio,
comandas.cveMesa, adicionales.descripcion, comandas.cantadic1, adicionales.descripcion,
comandas.cantadic2, adicionales.descripcion, comandas.cantadic3, adicionales.descripcion,
comandas.cantadic4, adicionales.descripcion, adicionales.descripcion, comandas.cantadic5
FROM comandas
INNER JOIN menus ON comandas.cveMenu = menus.cveMenu
INNER JOIN adicionales ON comandas.adic1 = adicionales.cveAdicional
OR comandas.adic2 = adicionales.cveAdicional
OR comandas.adic3 = adicionales.cveAdicional
WHERE comandas.cveOrden = 7;

El resultado que me muestra es este:

cveOrden titulo precio cveMesa descripcion cantadic1 descripcion1 cantadic2 descripcion2 cantadic3 descripcion3
7 Cena mexicana 90 4 Refresco 3 Refresco 2 Refresco 1 Refresco
7 Cena mexicana 90 4 Cerveza 3 Cerveza 2 Cerveza 1 Cerveza
7 Cena mexicana 90 4 Orden de aguacate 3 Orden de aguacate 2 Orden de aguacate 1 Orden de aguacate

Si se fijan el resultado me lo repite 3 veces y quisiera que solo me lo presentara en 1 fila

¿Se puede hacer esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Duda con consulta utilizando inner join

Publicado por Isaias (4558 intervenciones) el 21/06/2017 18:34:31
Bueno, por lo que veo su query esta ejecutandose en MYSQL y usted esta posteando en SQL SERVER, ¿que tiene la tabla MENU?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Roberto
Val: 3
Ha aumentado 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Duda con consulta utilizando inner join

Publicado por Roberto (2 intervenciones) el 21/06/2017 18:38:00
La tabla de menus contiene lo siguiente:


menus
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Duda con consulta utilizando inner join

Publicado por Isaias (4558 intervenciones) el 21/06/2017 18:49:01
Lo que requiere es PIVOTEAR sus datos de detalle para que aparezcan en un solo renglon, claro, que esto, puede volverse INFINITO y PIVOT, desconozco, si este soportado en MYSQL (No conozco este motor de datos), ¿porque no postea en el grupo de SQL y enfatiza que su motor esta en MYSQL.

Ahora viendolo desde el punto de vista de un RECIBO de comida en un restaurant, NUNCA presentara en un solo renglon el consumo, generalmente va de esta forma


Nombre del Restaurant
Mesa
Quien lo atendio
productos
.......entrada cantidad precio total
.......comida (2do tiempo) cantidad precio total
.......bebida ......
TOTAL A PAGAR

¿Para que quiere todo en una sola linea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar