PHP - Filtrar Datos

 
Vista:
sin imagen de perfil
Val: 133
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Filtrar Datos

Publicado por Alejandro (73 intervenciones) el 16/01/2020 15:00:08
Buenas,

Tengo este código que me funciona perfectamente. El problema es que aunque tengo la función DISTINCT me salen los campos duplicados con todos los datos igual a excepción del campo linea (porque se le va modificando la linea y lleva registro de ello) Hay otro campo que no no he declarado (llamemosle "fechamod") que indica la fecha y hora en la que el campo "linea" ha sido modificado. Mi pregunta es la siguiente:

¿Como puedo indicar a la consulta que solo me escriba la fila con el campo "fechamod" más reciente y asi evitar los duplicados con "linea" incorrecta?

Saludos y gracias,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
$serverName = "srvprincipal";
$connectionInfo = array( "Database"=>"GCOMB000", "UID"=>"UserPlanificacion", "PWD"=>"Albeniz2020");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}
 
?>
 
 
<html>
<head>
	<title>Ordenes de Trabajo</title>
<META http-equiv="Content-Type" content="text/html" charset="utf-8">
 
 
 
<?php
// Variable de declaración en segundos
$ActualizarDespuesDe = 60;
 
// Envíe un encabezado Refresh al navegador preferido.
header('Refresh: '.$ActualizarDespuesDe);
?>
</head>
<body>
	<body background="albeniz.jpg">
 
<br>
 
 
 
<?php
$resultado=array(date("H:i"));
 
echo json_encode($resultado);
 
?>
 
 <font color="Olive" face="Arial">
 
 
	<table border="1" >
 
 
       <b> <td align="center" height=25 width="150"  bgcolor="grey"><b>Fecha Fab.</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Máquina</b></td>
			<td align="center" height=25 width= 800  bgcolor="grey"><b>Cliente</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Orden</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Linea</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Cod.Artículo</b></td>
			<td align="center" height=25 width= 800  bgcolor="grey"><b>Descrip.</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Cantidad</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Metros</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Material 1</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Material 2</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Ancho</b></td>
	        <td align="center" height=25 width="150"  bgcolor="grey"><b>Magnético</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Troq.</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Nº Colores</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C1</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C2</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C3</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C4</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C5</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C6</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C7</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>C8</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Tiempo</b></td>
			<td align="center" height=25 width="150"  bgcolor="grey"><b>Estado</b></td>
 
           </tr>
           </b>
 
 
 
 
 
<?php
 
 
$sql = "SELECT DISTINCT ReclOrden, Mag= convert (numeric,OF_Magnetico),OF_Magnetico,Tec_Tip_stamp, Tec_Ava_stamp, Linea=VEstadoGoitek.OF_Lin, Tec_codigo, Fecha=convert(varchar(10), ReclFecFacbrica, 103),Metros=  convert (numeric,OF_MT_Tirada),Cant= convert( dec(10), OF_Cantidad), Clie_nombre, ReclMaquina, OF_Descripcion, ReclLin, OF_Cod_Art, OF_Cantidad,OF_MT_Tirada, OF_Tipo_Papel , OF_Cod_Troq, OF_Num_Tintas, OF_Color1, OF_Color2, OF_Color3, OF_Color4, OF_Color5, OF_Color6, OF_Color7, N_Orden=VEstadoGoitek.OF_N_Orden, OF_Color8, of_estado_dsc, OF_T_Tirada, OF_T_Tirada=Cast(Datepart(Hour,dateadd(n,OF_T_Tirada+25, '19000101')) as varchar(10))+':'+ Cast(Datepart(Minute,dateadd(n,OF_T_Tirada+25, '19000101')) as varchar (10)), convert(varchar(10), ReclFecFacbrica, 103)
FROM TReclamaciones,Ordenes,VEstadoGoitek, ARTITTEC, VCLIENTE
WHERE ReclLin = VEstadoGoitek.OF_Lin AND convert(varchar(10), ReclFecFacbrica, 103) BETWEEN convert(varchar(10), getdate(),103) AND convert(varchar(10), getdate() +1,103) AND Ordenes.OF_N_Orden = VEstadoGoitek.OF_N_Orden AND ReclOrden = VEstadoGoitek.OF_N_Orden AND ReclMaquina= '60' AND  Clie_codigo = OF_Cod_Cli AND of_estado_dsc != 'FINALIZADA' AND Tec_codigo = OF_Cod_Art AND Clie_emp = 1 AND Clie_codigo != 999
ORDER BY Fecha, of_estado_dsc";
 
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
   }
 
 
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
 
?>
 
     <b>
	<tr>
		    <td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Fecha'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['ReclMaquina'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo utf8_encode ($row['Clie_nombre'])  ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['N_Orden'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Linea'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Cod_Art'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo utf8_encode( $row['OF_Descripcion']) ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Cant'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Metros'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Tipo_Papel'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Tec_Tip_stamp'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Tec_Ava_stamp'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['Mag'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Cod_Troq'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Num_Tintas'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color1'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color2'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color3'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color4'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color5'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color6'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color7'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_Color8'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['OF_T_Tirada'] ?></td>
			<td align="center" height=25 valign="centre" bgcolor="#FFF0C9"><?php echo $row['of_estado_dsc'] ?></td>
		</tr>
		</b>
		</font>
 
<?php
 
}
 
?>
 
</table>
 
</body>
</html>
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Filtrar Datos

Publicado por Kathyu (905 intervenciones) el 16/01/2020 15:37:51
Me centré en esta pregunta

1
¿Como puedo indicar a la consulta que solo me escriba la fila con el campo "fechamod" más reciente y asi evitar los duplicados con "linea" incorrecta?

1
SELECT * FROM tuTabla ORDER BY fechamod DESC LIMIT 1

Eso traerá el ultimo registro modificado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar