INSERT SELECT salta valores! Buen día, ya había abierto este tema, solo que quedó olvidado.
Tengo un INSERT SELECT, el problema es que está saltando filas; al principio pensé que era el PHP, pero me di cuenta que no, ya que pegando el query directo en la consola SQL si se completa.
El PHP es el siguiente Código PHP: $query1="SELECT unidades.id, unidades.codigo, unidades.nombre, unidades.tipo FROM unidades WHERE unidades.codigo != 'MANAGER' AND unidades.codigo != '' ORDER BY unidades.id ASC"; $sql1=mysql_query($query1); while($row1=mysql_fetch_row($sql1)) { if($row1[3]=="PLANTA") { $store=$row1[2]; }else { $selectsucursal="SELECT relaciones_uniones.id_relacion, relaciones.id_planta, unidades.nombre as nombre FROM relaciones_uniones Inner Join relaciones on relaciones.id=relaciones_uniones.id_relacion Inner Join unidades on relaciones.id_planta=unidades.id WHERE relaciones_uniones.id_sucursal='".$row1[0]."' ORDER BY relaciones.fecha DESC"; $sqlsucursal=mysql_query($selectsucursal); while($rowntea=mysql_fetch_row($sqlsucursal)) { $store=$rowntea[2]; break; } } $query2="INSERT INTO kpi (ciudad, planta, sucursal, canal, orden, ticket, tipo_orden, fecha_elaboracion, fecha_promesa, fecha_finalizacion, fecha_entrega, lote, tiempo_de_ciclo, usuario, cliente, direccion, colonia, municipio, cp, telefono, creditos, alta, total_prendas, tipo, descripcion, cantidad, color, precio_unitario, importe, subtotal, credito_usado, descuento, efectivo, estatus_transaccion, cambio, total, estatus) SELECT 'Guadalajara', '".$store."', '".$row1[2]."', '".$row1[3]."', ".strtolower($row1[1])."_prendas_tickets.id_orden as orden, ".strtolower($row1[1])."_prendas_tickets.id_ticket as ticket, 'Venta', ".strtolower($row1[1])."_tickets.fecha_aper as fecha_elaboracion, ".strtolower($row1[1])."_tickets.fecha_promesa as fecha_promesa, ".strtolower($row1[1])."_tickets.fecha_asignacion as fecha_finalizacion, ".strtolower($row1[1])."_tickets.fecha_entrega as fecha_entrega, ".strtolower($row1[1])."_tickets.id_lote as lote, ((lotes.hora_final)-(lotes.hora_inicio)) as tiempo_de_ciclo, ".strtolower($row1[1])."_ordenes.atendio as usuario, ".strtolower($row1[1])."_ordenes.nombre as cliente, clientes.direccion as direccion, clientes.colonia as colonia, clientes.ciudad as municipio, clientes.cp as cp, ".strtolower($row1[1])."_ordenes.telefono as telefono, clientes.credito as creditos, clientes.fecha as alta, clientes.prendas as total_prendas, 'Prenda', ".strtolower($row1[1])."_prendas_tickets.prenda as descripcion, ".strtolower($row1[1])."_prendas_tickets.cant as cantidad, ".strtolower($row1[1])."_prendas_tickets.color as color, ".strtolower($row1[1])."_prendas_tickets.precio_unitario as precio_unitario, ".strtolower($row1[1])."_prendas_tickets.importe as importe, ".strtolower($row1[1])."_ordenes.subtotal as subtotal, ".strtolower($row1[1])."_ordenes.credito as credito_usado, ".strtolower($row1[1])."_ordenes.frecuente as descuento, ".strtolower($row1[1])."_ordenes.pago as efectivo, ".strtolower($row1[1])."_ordenes.corte as estatus_transaccion, ".strtolower($row1[1])."_ordenes.cambio as cambio, ".strtolower($row1[1])."_ordenes.total as total, ".strtolower($row1[1])."_tickets.estatus as estatus FROM ".strtolower($row1[1])."_prendas_tickets Inner Join ".strtolower($row1[1])."_tickets on ".strtolower($row1[1])."_tickets.id=".strtolower($row1[1])."_prendas_tickets.id_ticket Inner Join ".strtolower($row1[1])."_ordenes on ".strtolower($row1[1])."_ordenes.id=".strtolower($row1[1])."_prendas_tickets.id_orden Inner Join clientes on clientes.telefono=".strtolower($row1[1])."_ordenes.telefono Inner Join lotes on lotes.id=".strtolower($row1[1])."_tickets.id_lote WHERE ".strtolower($row1[1])."_tickets.fecha_aper>'2012-01-01' AND ".strtolower($row1[1])."_tickets.fecha_aper<'2013-11-12' ORDER BY ".strtolower($row1[1])."_tickets.fecha_aper ASC "; mysql_query($query2); echo $row1[2]." ".mysql_affected_rows()."<br/>"; } echo mysql_error(); y el ejemplo de uno de los querys resultantes es el siguiente:
Código:
INSERT INTO
kpi (ciudad, planta, sucursal, canal, orden, ticket, tipo_orden, fecha_elaboracion, fecha_promesa, fecha_finalizacion, fecha_entrega, lote, tiempo_de_ciclo, usuario, cliente, direccion, colonia, municipio, cp, telefono, creditos, alta, total_prendas, tipo, descripcion, cantidad, color, precio_unitario, importe, subtotal, credito_usado, descuento, efectivo, estatus_transaccion, cambio, total, estatus)
SELECT
'Guadalajara',
'Manuel Acuña',
'Manuel Acuña',
'Planta',
maa001_prendas_tickets.id_orden as orden,
maa001_prendas_tickets.id_ticket as ticket,
'Venta',
maa001_tickets.fecha_aper as fecha_elaboracion,
maa001_tickets.fecha_promesa as fecha_promesa,
maa001_tickets.fecha_asignacion as fecha_finalizacion,
maa001_tickets.fecha_entrega as fecha_entrega,
maa001_tickets.id_lote as lote,
((lotes.hora_final)-(lotes.hora_inicio)) as tiempo_de_ciclo,
maa001_ordenes.atendio as usuario,
maa001_ordenes.nombre as cliente,
clientes.direccion as direccion,
clientes.colonia as colonia,
clientes.ciudad as municipio,
clientes.cp as cp,
maa001_ordenes.telefono as telefono,
clientes.credito as creditos, clientes.fecha as alta,
clientes.prendas as total_prendas,
'Prenda',
maa001_prendas_tickets.prenda as descripcion,
maa001_prendas_tickets.cant as cantidad,
maa001_prendas_tickets.color as color,
maa001_prendas_tickets.precio_unitario as precio_unitario,
maa001_prendas_tickets.importe as importe,
maa001_ordenes.subtotal as subtotal,
maa001_ordenes.credito as credito_usado,
maa001_ordenes.frecuente as descuento,
maa001_ordenes.pago as efectivo,
maa001_ordenes.corte as estatus_transaccion,
maa001_ordenes.cambio as cambio,
maa001_ordenes.total as total,
maa001_tickets.estatus as estatus
FROM
maa001_prendas_tickets
Inner Join maa001_tickets on maa001_tickets.id=maa001_prendas_tickets.id_ticket
Inner Join maa001_ordenes on maa001_ordenes.id=maa001_prendas_tickets.id_orden
Inner Join clientes on clientes.telefono=maa001_ordenes.telefono Inner Join lotes on lotes.id=maa001_tickets.id_lote
ORDER BY
maa001_tickets.fecha_aper
ASC
Espero que alguien me pueda ayudar D: uso phpmyadmin :) muchas gracias por su atención :B |