MySQL - Sumar un campo según condición.

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 31 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Sumar un campo según condición.

Publicado por Daniel (1 intervención) el 07/03/2019 20:17:31
Condición dentro de una consulta.
Les comento lo que quiero hacer... Tengo una tabla donde almaceno productos y otra donde realizo las facturas...

Cuando ya ingresé un registro a la tabla facturas lo que quiero es ir sumando los campos que tienen un IVA igual (10.5 ó 21)y los quiero ir poniendo en dos textbox... Para eso hice esta consulta pero no me funciona... No me va mostrando en las cajas de texto el resultado y no sé porqué...

Esta es la parte donde doy de alta el Producto en la factura:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
StrIngresaCompra = "INSERT INTO Temporal_Factura(Num_Factura,Cod_Producto,Num_Cliente,Cantidad,Precio_Parcial,Subtotal,IVA_Incluido,Importe,Tipo_IVA) VALUES (" & Num_Factura & ",'" & Trim(TxtCodigo.Text) & "'," & Num_Cliente & "," & CInt(Cantidad_Vendida) & ",'$ " & Str(Precio_Parcial) & "','$ " & SubTotal & "','$ " & IVA_Incluido & "','$ " & Importe & "','" & Tipo_IVA & "')"
Set RstIngresaCompra = New ADODB.Recordset
RstIngresaCompra.Open StrIngresaCompra, Base, adOpenStatic, adLockBatchOptimistic
MsgBox "Producto Ingresado con éxito", vbInformation, "INGRESO DE COMPRA A FACTURA."
CmdFinalizarVenta.Enabled = True
 
MuestraProductosEnVentas ' PROCEDIMIENTO QUE ME MUESTRA LOS PRODUCTOS QUE HAY DISPONIBLES.

FormatoGrillaTemporal 'PROCEDIMIENTO PÚBLICO QUE ME MUESTRA LOS PRODUCTOS QUE VAN INGRESANDO A LA FACTURA:
 
Public Sub FormatoGrillaTemporal()
 
Dim strTemporal_Factura As String
Dim RstTemporal_Factura As New ADODB.Recordset
strTemporal_Factura = "select TF.Num_Factura,TF.Cod_Producto,P.Desc_Prod,TF.Cantidad,TF.Precio_Parcial,TF.IVA_Incluido,TF.SubTotal,TF.Importe,P.Tipo_IVA from Temporal_Factura as TF, Productos as P where Num_Factura =" & frmFacturacion.txtNum_Factura.Text & " And P.Cod_Producto = TF.Cod_Producto " & ""
Set RstTemporal_Factura = New ADODB.Recordset
RstTemporal_Factura.Open strTemporal_Factura, Base, adOpenStatic, adLockOptimistic
Set frmFacturacion.dtaDetalleFactura.DataSource = RstTemporal_Factura
 
End Sub
 
'****ESTA ES LA PARTE DONDE QUIERO HACER LA SUMA DE LOS PRODUCTOS QUE TIENEN IVA 10,5 Y PASARLA A LOS TEXTBOX Pero no me muestra nada...

 StrSUMSUB105 = "SELECT SUM(SubTotal) AS SUBT,SUM(TF.Importe) AS IMP,P.Tipo_IVA from Temporal_Factura as TF, Productos as P where TF.Num_Factura =" & txtNum_Factura.Text & " And P.Tipo_IVA ='" & 10.5 & "' GROUP BY TF.Num_Factura,P.Tipo_IVA"

    Set RstSUMSUB105 = New ADODB.Recordset
    RstSUMSUB105.Open StrSUMSUB105, Base, adOpenStatic, adLockOptimistic
    With RstSUMSUB105
        If .EOF = True Then
        Exit Sub
            'SUMSUBT105: VARIABLE PARA GUARDAR EL VALOR DE LA CONSULTA
            SUMSUBT105 = CDbl(!Subt)
            txtSubtotal(0).Text = CDbl(!Subt)
            'CDbl(SUMSUBT105)
            'StrSUMImporte105 = 9
            
            'Importe105: VARIABLE PARA GUARDAR EL VALOR DE LA CONSULTA
            Importe105 = CDbl(RstSUMSUB105!IMP)
            TxtImporte(0).Text = CDbl(Importe105)
           '
           ' SUMIVA105 = CDbl(!IMP105 - !SUBT105)
           ' txtSumatoriaIVA(0).Text = CDbl(SUMIVA105)
      End If
   End With

'Muchas gracias nuevamente!!!! Espero me puedan ayudar!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SuperIndio
Val: 102
Bronce
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Sumar un campo según condición.

Publicado por SuperIndio (79 intervenciones) el 12/03/2019 16:41:06
SUMSUBT105 = CDbl(!Subt) me parece que esta mal xq Subt es un nombre o alias interno del recordset o del SQL
cuando
haces:
1
2
3
4
5
6
7
SELECT SUM(SubTotal) AS SUBT,  -- SUBT  es una alias
                SUM(TF.Importe) AS IMP,  -- IMP  es una alias
                         P.Tipo_IVA
  from Temporal_Factura as  TF,
           Productos as P
where TF.Num_Factura =" & txtNum_Factura.Text & " And P.Tipo_IVA ='" & 10.5 & "' GROUP BY TF.Num_Factura,P.Tipo_IVA"


1
2
SUMSUBT105 = CDbl(RstSUMSUB105.Name("Subt")
            SUMSUBT105 = CDbl(RstSUMSUB105.Value(1) )

lo mismo para IMP
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar