Somma dati se codice uguale

GigiBena

Nuovo Utente
7 Apr 2013
12
0
1
Salve
Questa è la mia richiesta
Ho un database Ordinifarmacia.mdb composta da due tabelle: ( reparto e primopiano )
ambedue la tabelle contengono i seguenti campi: (codice prodotto qta )

la funzione che vorrei realizzare deve agire nel seguente modo
controllo il PRIMO record della tabella primopiano con TUTTI i record della tabella reparto.
Se il codice del primo record della tabella primopiano è uguale al codice contenuto nei record della tabella reparto, sommo il dato contenuto nel campo qta della tabella primopiano con il dato qta contenuto nella tabella reparto.
Se invece il codice del primo record della tabella primopiano non è presente nella tabella reparto, aggiungo in quest’ultima un nuovo record contenente i valori presenti nel campo codice, prodotto e qta della tabella primopiano
E cosi per tutti i record della tabella primopiano

1 TABELLA PRIMOPIANO
Codice = 3456
Prodotto = DEPAS GOCCE
QTA = 3


1 TABELLA REPARTO
Codice = 3456
Prodotto = DEPAS GOCCE
QTA = 20

CODICE UGUALE perciò QTA = 23




2 TABELLA PRIMOPIANO

Codice = 5456
Prodotto = MEROPEMEN
QTA = 4


2 TABELLA REPARTO non essendoci il prodotto viene aggiunto
Codice = 5456
Prodotto = MEROPEMEN
QTA = 4

Ringraziando per la disponibilità e il tempo che mi verrà dedicato, porgo distinti saluti

Bena GiovanniLuigi
 
dai un occhio, io userei la seguente lociga:

Codice:
<%

' script con ciclo

SELECT * FROM PRIMOPIANO

' | inizia il ciclo
	codice = Rs.Fields.Item("codice").Value
	prodotto = Rs.Fields.Item("prodotto").Value
	quantita1 = Rs.Fields.Item("quantità").Value
	
' || ora verifico che il codice esista o meno nella tabella reparto	

	SELECT * FROM REPARTO WHERE codice = "&codice&"
		
		codice_reparto =  Rs1.Fields.Item("codice").Value
		quantita2 = Rs1.Fields.Item("quantità").Value
	
		' faccio il controllo
			if codice_reparto = codice Then
				quantita1 + quantita1 = quantita_totale
			
			Else
		' faccio uno script per inserire nella tabella
		' reparto i valori rilevati
		
				INSERT INTO REPARTO....
	
			End If
			

' | fine ciclo

%>
ovviamente il codice non è funzionante ma solo indicativo.
 
Ecco il codice:
Codice:
<style type="text/css">
<!--
.bordo {
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #CCCCCC;
}
td {
	font-family: Verdana;
	font-size: 11px;
	color: #333333;
	text-decoration: none;
	line-height: 18px;
}
-->
</style>
<table width="500" align="center" cellpadding="2" cellspacing="2" border="0">
<tr>
<td colspan="3">Attenzione, se visualizzi dei record color rosso, significa che l'informazione &eacute; stata parificata nei due DB.</td>
</tr>
<tr align="center">
<td style="background-color:#333333; color:#FFFFFF">Codice</td>
<td style="background-color:#333333; color:#FFFFFF">Prodotto</td>
<td style="background-color:#333333; color:#FFFFFF">Quantit&agrave;</td>
</tr>
<%

'  ---------------------------------------------------
	Set Rs = Server.CreateObject("ADODB.Recordset")
		Rs.ActiveConnection = strConnect
		Rs.Source = "SELECT * FROM primopiano ;"
		Rs.CursorType = 0
		Rs.CursorLocation = 2
		Rs.LockType = 1
		Rs.Open()
		Ciclo = 9999 ' numero massimo record visualizzabili
If NOT Rs.EOF Then

	While ((Ciclo <> 0) AND (NOT Rs.EOF)) 
	
		a1 = (Rs.Fields.Item("id").Value)
		a2 = (Rs.Fields.Item("codice").Value)
		a3 = (Rs.Fields.Item("prodotto").Value)
		a4 = (Rs.Fields.Item("qta").Value)
' ====================================================================
'Response.Write a1&"<br>"	

%>
<%
	Set Rv = Server.CreateObject("ADODB.Recordset")
		Rv.ActiveConnection = strConnect
		Rv.Source = "SELECT * FROM reparto WHERE codice = '"&a2&"' ;"
		Rv.CursorType = 0
		Rv.CursorLocation = 2
		Rv.LockType = 1
		Rv.Open()
		Ciclv = 9999 ' numero massimo record visualizzabili
If NOT Rv.EOF Then

	While ((Ciclv <> 0) AND (NOT Rv.EOF)) 
	
		v1 = (Rv.Fields.Item("id").Value)
		v2 = (Rv.Fields.Item("codice").Value)
		v3 = (Rv.Fields.Item("prodotto").Value)
		v4 = (Rv.Fields.Item("qta").Value)

			Totale = v4 + a4
		
%>
<tr>
<td class="bordo"><%=v2%></td>
<td class="bordo"><%=v3%></td>
<td class="bordo" align="center"><strong><%=Int(Totale)%></strong></td>
</tr>
<%

		Ciclv = Ciclv-1
		Rv.MoveNext()
	Wend
Else

				Set RsUpdate = server.CreateObject ("ADODB.Connection")
					RsUpdate.ConnectionString = strConnect
					RsUpdate.Open
					QuerySQL = "INSERT INTO reparto (" &_
								"codice, " &_
								"prodotto, " &_
								"qta " &_
								") VALUES (" &_
								"'"&a2&"', " &_
								"'"&a3&"', " &_
								"'"&a4&"' )"
					RsUpdate.Execute QuerySQL
				Set RsUpdate = Nothing

%>

<tr>
<td class="bordo"><font color="#FF0000"><%=v2%></font></td>
<td class="bordo"><font color="#FF0000"><%=v3%></font></td>
<td class="bordo" align="center"><strong><font color="#FF0000"><%=Int(Totale)%></font></strong></td>
</tr> 
<%	
		
End If
		Rv.Close
	Set Rv = Nothing ' chiudo il recordset



	
' ====================================================================
		Ciclo = Ciclo-1
		Rs.MoveNext()
	Wend

End If

		Rs.Close
	Set Rs = Nothing ' chiudo il recordset

%>
</table>

La connessione al DB la devi aggiungere te e chiamarla: strConnect
Buon lavoro.
 

Discussioni simili