Programación General > Bases de Datos

 Uso Del Count

(1/2) > >>

marisol_ylonen:
:hola: Saludos a todos,

Estoy ejecutando una consulta en el sql del as400. Tengo un campo
"componentes" y otro "conjunto" en la misma tabla. Tienen en común un campo llamado "No_Empresa". "Componente" es una pieza que pertenece a un "conjunto", entonces también tienen en común "conjunto". Bueno, necesito mostrar esta información en un formulario, que además de que me muestre a que conjunto pertenece cada pieza, me diga cuántos componentes lleva cada conjunto.
El punto es que no sé si sea count lo que debo usar y si es cómo se usa?
La sintaxis para las consultas en el as400 es algo así:
select componente, conjunto from basedatos/tabla where No_Empresa='5' order by conjunto

Esto me devuelve los componentes y conjuntos ordenados por el conjunto. Ahora, cómo le hago para que cuente cuántos componentes por conjunto son?.

Muchas gracias por su atención.
 :hola:

ElNapster:

--- Código: Text ---select componente, conjunto from basedatos/tabla where No_Empresa='5' order by conjunto 

ummmm si es en SQL seria algo asi

--- Código: Text --- select componente        , conjunto ,count(*)from basedatos/tabla where No_Empresa='5' GROUP BY componente        , conjunto ,count(*)order by conjunto 
 :comp:

marisol_ylonen:
La intenté como propones pero no me funciono, me decía que estaba haciendo un uso indebido del count. La modifiqué y la escribí así:
select count(componente) conjunto from basedatos/tabla where No_empresa='5'
GROUP BY stkomp order by stbgnr                                
Ejecución completa de sentencia SELECT                
Devuelve datos, pero no es lo que quiero. Cambia la columna conjunto por números que parecen autonuméricos pero no son porque se repiten varias veces. Esto es la parte final del resultado:
95
 98
 99
101
152
156
164
188
192
212

ElNapster:

--- Citar ---me decía que estaba haciendo un uso indebido del count. La modifiqué y la escribí así:
select count(componente) conjunto from basedatos/tabla where No_empresa='5'
--- Fin de la cita ---

Pues al parecer esta algo raro porque aca en la consulta que te di , es que por cada diferente tipo de componente y conjunto el va a contar cuantos cumplen con esta condicion y por eso se hace el GROUP BY ya que el set de cada resultado lo va agrupando .... en sql server funcionaria perfectamente ... no se si habra un error u otra forma de hacerlo en as400 ummmmm aunque como es sentencia sql creo que no pero bueno....  :scream:

marisol_ylonen:
SELECT componente, conjunto FROM basedatos/tabla WHERE empresa='5' order by conjunto                                                              
Ejecución completa de sentencia SELECT                              
Esta funciona bien, me da esto:
componente          conjunto        
MS0000L002       C922-XXX-01  
91121401           C922-XXX-01  
ES0000L001        C922-XXX-02  
MP000106           D258003125-02
1250520107.4     D258003125-02
1251010108.2     D258003125-02
1251251103        D258003125-02
1251355107.2     D258003125-02
1254488129        D258003125-02
ES43001004        D258003125-02
ES44001904        D258003125-02
ES43001804        D258003125-02
ES0000A0125      D258003125-02
1250520107.4     D258003559-01

No sé si se entienda bien lo que busco, por ejemplo, si llego a un registro en el formulario con el conjunto D258003125-02, me diga también cuántas piezas lleva ese conjunto y que en otra caja de texto me diga a qué conjunto pertenece:
No_parte(componente)       ES0000A0125
Conjunto                           D258003125-02
No_piezas del conjunto       10

A lo mejor haciendo una comparación por conjunto y si son iguales se sumen, pero no sé cómo hacerlo. Y es que aparte en el sistema están guardadas unas piezas que no se  fabrican, como componente empiezan con ES*, y en su descripción es Subensamble *. Cuando se muestre la información estos datos no deben aparecer tampoco en el numero de componentes por conjunto.

¡¡¡¡¡¡Ayúdenme por favor, me estoy desesperando!!!!!!!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa