Buscar

Gregorio J. Bolívar B.

Blog del conocimiento informático, de ayuda a los usuarios que necesiten de tips tecnológicos. . . . Perfil=> https://www.linkedin.com/in/gregorio-bolivar

Explicación de cómo hacer una consulta con detalles múltiple en SQLServer.

Proceso encargado de hacer una consulta que retorne una lista detalles de una consulta con detalles múltiple en Sql Server en este caso fue probado en la versión 2008, esta ejemplo es fundamental para ser usado en cualquier caso que a merite.

Vamos a proceder hacer unos

Tabla Usuarios
CREATE TABLE usuarios (
id INT IDENTITY (1, 1) NOT NULL,
apellidos VARCHAR(50) NOT NULL,
nombres VARCHAR(50) NOT NULL,
usuario VARCHAR(20) NOT NULL,
correo VARCHAR(50) NOT NULL,
clave CHAR(50) NOT NULL,
CONSTRAINT pk_usuarios PRIMARY KEY(id)
);

INSERT INTO usuarios (apellidos,nombres,usuario,correo,clave) VALUES('BLANCO','HUMBERTO','hblanco','hblanco@gmail.com','501fafd714de5faa708c35f07c291c21');

INSERT INTO usuarios (apellidos,nombres,usuario,correo,clave) VALUES('PEREZ','ROBERTO','rparez','rparez@gmail.com','a4a97ffc170ec7ab32b85b2129c69c50');

INSERT INTO usuarios (apellidos,nombres,usuario,correo,clave) VALUES('BOLIVAR','GREGORIO','gbolivar','elalconxvii@gmail.com','c707dce7b5a990e349c873268cf5a968');

Tablas Perfiles
CREATE TABLE perfil (
id BIGINT IDENTITY (1, 1) NOT NULL,
detalle VARCHAR(50) NOT NULL,
CONSTRAINT pk_perfil PRIMARY KEY(id)
);

INSERT INTO perfil (detalle) VALUES('Admin');
INSERT INTO perfil (detalle) VALUES('Operador');
INSERT INTO perfil (detalle) VALUES('Secretaria');
INSERT INTO perfil (detalle) VALUES('Supervisor');
INSERT INTO perfil (detalle) VALUES('Coordinador');

Tabla UsuariosPerfiles
CREATE TABLE usuario_perfil (
perfil_id BIGINT NOT NULL,
usuarios_id BIGINT NOT NULL
CONSTRAINT pk_usuario_perfil PRIMARY KEY(perfil_id,usuarios_id)
);

INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(2,1);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(1,1);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(2,2);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(3,2);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(1,3);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(2,3);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(3,3);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(4,3);
INSERT INTO usuario_perfil (perfil_id, usuarios_id) VALUES(5,3);

Desafío
Queremos lograr hacer una consulta donde podemos podamos extraer los usuarios asociados con sus perfiles separados por un carácter especial en este caso coma (,) con el objetivo de que se haga fácil hacer la visualización de los datos.

SELECT c.usuario, STUFF((SELECT ',' + a.detalle from perfil AS a
INNER JOIN usuario_perfil AS b ON b.perfil_id=a.id
WHERE b.usuarios_id=c.id GROUP BY a.detalle FOR XML PATH('')),1 ,1, '') AS detalle FROM usuarios AS c

resultado en hacer una consulta con detalles múltiple.

Anuncios

Solventar error de DataTable múltiple llamados

Buenas espero que se encuentren bien, tenia tiempo que no escribía una entrada debido a la cantidad de trabajo que he tenido, pero les traigo una entrada importante debido que cuando trabajamos con el DataTable de jQuery y deseamos hacer instancias múltiple a la librería para extraer una grilla que depende de otra nos sale un error parecido a este de Que no puede reiniciarse el DataTable

datatableError

La solución para este problema es agregar la siguiente linea "destroy": true

En mi caso me quedo de esta manera:
var onTable: $('#dataJPHRoles').DataTable({
"ajax": {
"url": '/rolesListar',
"dataSrc": ""
},
"rowId": 'id',
"iDisplayLength": 100,
"searching": true,
"paging": true,
"columns": Config.colums,
"sServerMethod": "POST",
"language": {
"url": "/admin/dist/js/Spanish.json"
},
"destroy": true
})

Espero que sea de utilidad en mi caso me soluciono la vida, hasta luego.

Hacer un query con limit en SqlServer

En Sql Server es triste que no existe el famoso limit para hacer consulta por rango estilo paginado desde hasta , para eso estuve indagando y conseguí una maravilla que me sirvió para hacer las consultas personalizadas cuando tenemos muchas registros e integrar con datatable, en este caso le traigo la consulta.

SELECT * FROM (
SELECT ROW_NUMBER() OVER( ORDER BY id ASC ) AS row, * from test_autos
) AS sub
WHERE row >= 0 AND row <= 25

Consultar Seniat nueva manera, implementando con Curl + PHP

En la mayoría de los sitios necesitamos hacer aplicaciones donde consultas el RIF de las personas jurídicas para esto hay entidades gubernamentales que se encargan de esto en Venezuela, pero para cada país debe existir un website similar, y en la mayoría de los casos siempre uno como desarrollador desea tener la capacidad de consultar estos datos, pero anteriormente había publicado algún método que dejo de funcionar ahora tuve que hacer una actualización para poder hacer la nueva forma

Puede descargar el codigo desde la siguiente ruta, es necesario tener git instalado en su maquina para descargarlo de lo contrario copia en el navegador pero sin el git clone
git clone https://github.com/CaribesTIC/searchseniat.git
git clone https://gbolivar_@bitbucket.org/gbolivar_/searchseniat.git
Nota: Para poder usar CURL debes tener ese paquete instalado en tu maquina.

Integración de twig con Codeigniter 3 mediante composer

Integración de twig con Codeigniter 3 mediante composer

En estos tiempo e mejor integrar un gestor de plantillas si vamos a trabajar con Codeigniter3 pero en esta ocasión sera con Twig, pero de instalación mediante composer.

Vamos hacer los siguientes pasos:

  1. Ubicarnos en la carpeta de donde esta el proyecto.
    $ cd /path/to/codeigniter/
  2. Instalación de composer
    $ composer require kenjis/codeigniter-ss-twig
  3. Instale libraries/Twig.php en su carpeta de aplicación CodeIgniter:
    $ php vendor/kenjis/codeigniter-ss-twig/install.php
    Por encima del comando siempre sobrescribe los archivos existentes.
    Debe ejecutarlo en la carpeta raíz del proyecto CodeIgniter.
  4. Agregar la constante del path de twig en application/config/constants.php debe agregar lo siguiente al final del archivo:
    /*
    * Proceso de twig
    */
    define(‘VIEWPATH’, ‘application/views/twig/templates’);
  5. Buscar el archivo index.php del sistema el cual es controlador frontal de codeigniter y agregar lo siguiente:
    require_once ‘vendor/autoload.php’;

Crea un blog o un sitio web gratuitos con WordPress.com.

Subir ↑