none
Consulta para buscar caracter RRS feed

  • Pregunta

  • Hola, estoy tratando de obtener la suma de una columna mediante esta función.

            Dim fecha As Date = DateTime.Now.ToString("dd/MM/yyyy")
            Try
                Using con As New SqlConnection(strCadenaConexion)
                    con.Open()
                    Dim query As String = "Select isnull(sum(Total),0) from Ventas where FormaPago LIKE '%Cuenta corriente%' and Fecha2 = @fecha"
                    Dim cmd As New SqlCommand(query, con)
                    cmd.Parameters.AddWithValue("@fecha", fecha)
                    Label3.Text = CDbl(cmd.ExecuteScalar())
                End Using
            Catch ex As Exception
                MsgBox("Ocurrio un error.")
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Al ejecutarla no obtengo nada pero si quito "FormaPago LIKE '%Cuenta corriente%'" si obtengo los datos por lo tanto ahí esta el "problema".

    La tabla "Ventas" cuenta con los registro necesarios para que se ejecute la selección y obtenga datos.

    Como podría modificar la consulta específicamente en  "FormaPago LIKE '%Cuenta corriente%'"  para obtener los datos?


    jueves, 3 de agosto de 2017 23:17

Respuestas

  • La intercalación es una configuración "de inicio" puesta a nivel de instancia/base de datos/tabla/columna, cambiando la configuración no afectará a los objetos existentes. La solución tiene que ver con crear una nueva base de datos configurando la intercalación adecuada, generar el script de creación de objetos y finalmente la carga de datos. Entiendo no es el ámbito de la pregunta ni mucho menos del foro de Visual Basic resolver este tipo de casos que tienen que ver con SQL Server.

    Sin embargo, una solución paleativa y simple es convertir ambos lados -de la expresión de comparación- al mismo estilo de escritura, por ejemplo:

    WHERE LOWER(FormaPago) LIKE '%cuenta corriente%' 


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Federico32113 viernes, 4 de agosto de 2017 0:09
    viernes, 4 de agosto de 2017 0:00

Todas las respuestas

  • ¿Estás seguro que la columna 'FormaPago' contiene valores con el literal 'Cuenta corriente'?. Si no obtienes resultados es porque el literal no se encuentra en ningún valor de la columna 'FormaPago' o porque la intercalación está configurada con case-sensitive que distingue un carácter en mayúscula de otro en minúscula, si es eso bastara con convertir "ambos lados" a sólo mayúsculas o sólo minúsculas.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    jueves, 3 de agosto de 2017 23:35
  • ¿Estás seguro que la columna 'FormaPago' contiene valores con el literal 'Cuenta corriente'?. Si no obtienes resultados es porque el literal no se encuentra en ningún valor de la columna 'FormaPago' o porque la intercalación está configurada con case-sensitive que distingue un carácter en mayúscula de otro en minúscula, si es eso bastara con convertir "ambos lados" a sólo mayúsculas o sólo minúsculas.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.

    Cambie todos los valores a minúscula y si encontró lo que buscaba.

    Como puedo hacer para que no distinga los caracteres mayúscula de otro en minúscula? SQL server 2008.

    jueves, 3 de agosto de 2017 23:43
  • La intercalación es una configuración "de inicio" puesta a nivel de instancia/base de datos/tabla/columna, cambiando la configuración no afectará a los objetos existentes. La solución tiene que ver con crear una nueva base de datos configurando la intercalación adecuada, generar el script de creación de objetos y finalmente la carga de datos. Entiendo no es el ámbito de la pregunta ni mucho menos del foro de Visual Basic resolver este tipo de casos que tienen que ver con SQL Server.

    Sin embargo, una solución paleativa y simple es convertir ambos lados -de la expresión de comparación- al mismo estilo de escritura, por ejemplo:

    WHERE LOWER(FormaPago) LIKE '%cuenta corriente%' 


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Federico32113 viernes, 4 de agosto de 2017 0:09
    viernes, 4 de agosto de 2017 0:00
  • Mil gracias, me resulto de utilidad.

    Saludos!

    viernes, 4 de agosto de 2017 0:10