none
Contar la cantidad de datos en una columna en SQL desde Visual basic 2008 RRS feed

  • Pregunta

  • buenas noches tengo un inconveniente, lo que estot tratando de hacer es hallar la cantidad de productos en una determinada columna en SQL, sabiendo que hay varios productos, esta es mi base de datos, esta lleno

    Lo que intento hacer es hayar el total de cocina electrica mas no quiero que me salga el total de los otros productos que hay en mi base de datos.

    Pero al darle clic en total en este caso de cocina electrica me sale 10 en ves de salirme 5

    Mi pregunta es como haria desde visual basic para hacer esto, o algo me faltaria modificar en SQL para para resolver este problema que tengo

    Actualemente estoy usando SQL server 2008 y Visual Basic 2008

    domingo, 28 de octubre de 2012 1:15

Todas las respuestas

  • La idea es usar el Count:

    SELECT COUNT(*) FROM NombreTuTabla WHERE Departamento = 'cocina electrica'

    Analiza este ejemplo y adaptalo a tu consulta actual...


    Saludos desde Monterrey, Nuevo León, México!!!

    domingo, 28 de octubre de 2012 1:21
  • Esta correcto lo que me indicas, el detalle es que el usuario puede buscar: (cocina electrica o balon de gas o mandil abesto y otros campos mas que hay) esta consulta la tendria que hacer desde visual basic


    domingo, 28 de octubre de 2012 1:29
  • algo esta mal planteado en lo que preguntas, mostrar el campo codigo_taller y a la vez la cantidad en una misma query no se puede resolver

    ya que el codigo impide agrupar el valor de la cantidad por un tipo en concreto

    es por eso que la unica que queda es obtener el valor por fuera de la query que carga los demas datos, si estas mostrando "cocina electrica" luego de cargar los demas datos, deberas lanzar una query adicional que recupere la cantidad

    esta consulta la tendria que hacer desde visual basic

    claro donde quieres realizar la consulta, el query lo defines y lanzas en vb.net usando ado.net

    acaso es que usas dataset tipados, o estas usnado los objetos SqlCommand, SqlConnection, etc

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 28 de octubre de 2012 1:43
  • En verdad estoy usando datset tipados el SqlCommand,SqlConnection . en todo caso como estoy creando esta base de datos me podrias indicar en si que tendria que modificar en mi base de datos para poder resolver este inconveniente que tengo
    domingo, 28 de octubre de 2012 2:32
  • el tema no es modificar la base de datos, sino la tecncia que usarias para mostrar la informacion

    en una solo query no se podria lograr, o al menso no y que quede bien la query

    por eso por un lado deberias cargar los datos que tienes actualmente y despues usar

    Public Function CantidadPorDetalle(detalle As String) As Integer
    
    	Using cn As New SqlConnection(ConnectionString)
    		cn.Open()
    
    		Dim query As String = "SELECT COUNT(*) FROM NombreTabla WHERE detalle = @detalle"
    								
    		Dim cmd As New SqlClient.SqlCommand(query, cn)
    		cmd.Parameters.AdDwithValue("@detalle", detalle)
    		
    		Return CInt(cmd.ExecuteScalar())
    					   
    	End Using
    	
    End Functio

    a esa funcion le pasas el detalle y devolvera la cantidad, lo usarias

    txtcantidad.Text = CantidadPorDetalle(txtdetalle.text)

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 28 de octubre de 2012 2:57
  • disculpame, me podrias explicar un poco mas esta parte

    a esa funcion le pasas el detalle y devolvera la cantidad, lo usarias

    txtcantidad.Text = CantidadPorDetalle(txtdetalle.text)

    e echo lo siguiente:

     Public Function CantidadPorDetalle(ByVal detalle As String) As Integer

            Using cn As New SqlConnection("server=.;database=metalurgia;integrated security=true")
                cn.Open()
                Dim query As String = "SELECT COUNT(*) FROM Dep_taller WHERE detalle = @detalle"

                Dim cmd As New SqlClient.SqlCommand(query, cn)
                cmd.Parameters.AddWithValue("@detalle", detalle)

                Return CInt(cmd.ExecuteScalar())

            End Using
        End Function

    Disculpa las molestias,

    domingo, 28 de octubre de 2012 3:51
  • por supuesto lo que planteo es solo un ejemplo, podrias pasar el detalle por parametro o el codigo (o id) por el cual filtrar

    la idea es que pases el valor que identifica el detalle para que pueda contar la cantidad de registros que hay en la tabla y devuela ese valor como respuesta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 28 de octubre de 2012 4:01