1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

campos calculados

Tema en 'PHP y MySQL' comenzado por Juan Herrera, 11 de Enero de 2017.

  1. Juan Herrera

    Juan Herrera Miembro

    Se incorporó:
    22 de Noviembre de 2015
    Mensajes:
    41
    Me gusta recibidos:
    4
    Puntos de trofeos:
    8
    Género:
    Hombre
    hola tengo una pregunta en sql server yo tenia una tabla donde la suma de dos campos era el resultado del tercero sin hacer nada. aqui mi codigo. pero lo estoy pasando para usarlo en mysql (phpmyadmin) y no eh podido.

    create table puntos(
    id_usuarios2 int not null,
    puntos_ganados int not null default 5000,
    puntos_promociones int not null default 0,
    puntos_referidos int not null default 0,
    puntos_subreferidos int not null default 0,
    puntos_perdidos int not null default 0,
    puntos_regalo int not null default 0,
    puntos_acumulados AS (((puntos_ganados+puntos_promociones+puntos_referidos+puntos_subreferidos)-puntos_regalo)-puntos_perdidos),
    constraint fk_us2 foreign key(id_usuarios2) references usuarios (id_usuarios));


    sera que en mysql no se puede o me estoy equivocando en algo?
     
  2. AngelKrak

    AngelKrak Miembro conocido

    Se incorporó:
    29 de Abril de 2015
    Mensajes:
    946
    Me gusta recibidos:
    362
    Puntos de trofeos:
    63
    Género:
    Hombre
    Ocupación:
    Freelancer
    Localización:
    Guadalajara
    Página web:
  3. Dawud

    Dawud Miembro Activo

    Se incorporó:
    4 de Abril de 2016
    Mensajes:
    214
    Me gusta recibidos:
    162
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Villahermosa, Tabasco
    No puedes realizar una operación cuando vas a crear una tabla, y la palabra as se utiliza para asignar un alias.

    por ejemplo
    Código (Text):
    select puntos_ganados as 'Puntos Ganados' from puntos
    select p.puntos_ganados as 'Puntos Ganados' from puntos as p
     
    la operación realizalá con un select.
     
    A AngelKrak le gusta esto.
  4. Juan Herrera

    Juan Herrera Miembro

    Se incorporó:
    22 de Noviembre de 2015
    Mensajes:
    41
    Me gusta recibidos:
    4
    Puntos de trofeos:
    8
    Género:
    Hombre
    esta muy buena la pagina la acabo de colocar como una de mis favoritas.

    cierto Dawud tienes razon, pero en sql server yo podia colocar un campo para que sumara los otros dos, y diera un total sin usar trigger. pero en mysql no encuentro como hacerlo. probare con alter table a ver si me resulta.
     
    A AngelKrak le gusta esto.
  5. Dawud

    Dawud Miembro Activo

    Se incorporó:
    4 de Abril de 2016
    Mensajes:
    214
    Me gusta recibidos:
    162
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Villahermosa, Tabasco
    En sql ?? la vdd no he intentado hacer esa forma como mencionas... Puedes crear una tabla trigger como mencionas pero tienes que definir update ya que solamente vas a actualizar la columna puntos_acomulados..

    Aquí te dejo un link el cual te define un poco de trigger o puedes usar after o before.
    http://www.hermosaprogramacion.com/2014/06/mysql-trigger/

    La www.w3school.com es muy buena... puede apoyarte para diversos lenguajes cuando no recuerde algo o quieras aprender algo nuevo....
     
    A AngelKrak le gusta esto.
  6. Juan Herrera

    Juan Herrera Miembro

    Se incorporó:
    22 de Noviembre de 2015
    Mensajes:
    41
    Me gusta recibidos:
    4
    Puntos de trofeos:
    8
    Género:
    Hombre
    alli esta un video del metodo que siempre lo habia hecho en sql server, que el campo sume los demas sin ningun trigger ni nada. pero bueno si esa es la unica manera en mysql tendre que hacerlo con trigger
     
  7. Juan Herrera

    Juan Herrera Miembro

    Se incorporó:
    22 de Noviembre de 2015
    Mensajes:
    41
    Me gusta recibidos:
    4
    Puntos de trofeos:
    8
    Género:
    Hombre
    jajajajajajaj muchisimas gracias @Dawud @AngelKrak ya vi el error, tenia que colocar que seran de numeros enteros con el int.

    puntos_acumulados INT as (((puntos_ganados+puntos_promociones+puntos_referidos+puntos_subreferidos)-puntos_regalo)-puntos_perdidos),
     
  8. Dawud

    Dawud Miembro Activo

    Se incorporó:
    4 de Abril de 2016
    Mensajes:
    214
    Me gusta recibidos:
    162
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Villahermosa, Tabasco
    No precisamente puedes hacerlo con un update y select o usando el alter table que menciona unido para que puedas realizarlo....

    Pero si te fijas en el video el realiza en las operaciones el altera la tabla carrera poniendo el nombre de columna cupo-minimo + 100 agregando a una nueva columna llamada Resta y este lo que hace es que realiza busca la columna cupo-minimo y le suma ...

    Exacto te faltaba indicar un int ya lo habiá redactado.. y mira mi resultado....
    upload_2017-1-11_20-3-49.png

    pero una pregunta... los puntos de regalos no se debería de restar si no sumarle no crees??
    Muestra tu resultado para otro que necesite ver tu solución...
     
    A AngelKrak le gusta esto.
  9. Juan Herrera

    Juan Herrera Miembro

    Se incorporó:
    22 de Noviembre de 2015
    Mensajes:
    41
    Me gusta recibidos:
    4
    Puntos de trofeos:
    8
    Género:
    Hombre
    cierto, lo habia dejado para corregirlo luego y con el tiempo se me habia olvidado lo de puntos_regalo.. exactamente ese capture que colocaste fue mi resultado.
     
    A AngelKrak le gusta esto.

Comparte esta página