<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nideaderedes &#187; sum</title>
	<atom:link href="http://nideaderedes.urlansoft.com/tag/sum/feed/" rel="self" type="application/rss+xml" />
	<link>http://nideaderedes.urlansoft.com</link>
	<description>Un blog hecho por mí y para mí</description>
	<lastBuildDate>Thu, 10 Jun 2010 18:46:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL: actualizar un campo con la suma de unos registros de otra tabla</title>
		<link>http://nideaderedes.urlansoft.com/2008/11/03/mysql-actualizar-un-campo-con-la-suma-de-unos-registros-de-otra-tabla/</link>
		<comments>http://nideaderedes.urlansoft.com/2008/11/03/mysql-actualizar-un-campo-con-la-suma-de-unos-registros-de-otra-tabla/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 07:00:47 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[subconsultas]]></category>
		<category><![CDATA[sum]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=668</guid>
		<description><![CDATA[Si tenemos una tabla que queremos actualizar con la suma de valores de otra tabla podemos hacerlo vía programación (lo he visto en un programa que he tenido que modificar recientemente) o lo podemos hacer directamente usando una consulta MySQL.
En este ejemplo en concreto que me encontré había dos tablas:
facturas:

num_factura
base_imponible

factura_detalle:

num_factura
articulo
precio

La tabla factura_detalle contiene, como el [...]]]></description>
			<content:encoded><![CDATA[<p>Si tenemos una tabla que queremos actualizar con la suma de valores de otra tabla podemos hacerlo vía programación (lo he visto en un programa que he tenido que modificar recientemente) o lo podemos hacer directamente usando una consulta MySQL.</p>
<p>En este ejemplo en concreto que me encontré había dos tablas:</p>
<p>facturas:</p>
<ul>
<li>num_factura</li>
<li>base_imponible</li>
</ul>
<p>factura_detalle:</p>
<ul>
<li>num_factura</li>
<li>articulo</li>
<li>precio</li>
</ul>
<p>La tabla <em>factura_detalle</em> contiene, como el nombre indica, el detalle de las facturas. Cada línea es un artículo y su precio.</p>
<p>La tabla facturas tenía un campo <em>base_imponible</em> que era necesario actualizar con el precio de los artículos de la factura en la tabla factura_detalle.</p>
<p>Esto se puede hacer directamente usando una <strong>subconsulta</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql"><span style="color: #993333; font-weight: bold;">UPDATE</span> facturas <span style="color: #993333; font-weight: bold;">SET</span> base_imponible <span style="color: #66cc66;">=</span>
     <span style="color: #66cc66;">&#40;</span> <span style="color: #993333; font-weight: bold;">SELECT</span> sum<span style="color: #66cc66;">&#40;</span> precio <span style="color: #66cc66;">&#41;</span> total_calculado
		<span style="color: #993333; font-weight: bold;">FROM</span> factura_detalle
		<span style="color: #993333; font-weight: bold;">WHERE</span> num_factura <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'30'</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #993333; font-weight: bold;">WHERE</span> num_factura <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'30'</span>;</pre></div></div>

<p>La subconsulta se encarga de buscar todos los registros de la tabla de detalle y sumar los precios:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql"><span style="color: #993333; font-weight: bold;">SELECT</span> sum<span style="color: #66cc66;">&#40;</span> precio <span style="color: #66cc66;">&#41;</span> total_calculado
		<span style="color: #993333; font-weight: bold;">FROM</span> factura_detalle
		<span style="color: #993333; font-weight: bold;">WHERE</span> num_factura <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'30'</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>y la consulta principal lo que hace es asignar ese valor, que sería algo así suponiendo que la anterior hubiese devuelto el valor &#8216;300&#8242;:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql"><span style="color: #993333; font-weight: bold;">UPDATE</span> facturas <span style="color: #993333; font-weight: bold;">SET</span> base_imponible <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'300'</span>
     <span style="color: #993333; font-weight: bold;">WHERE</span> num_factura <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'30'</span>;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2008/11/03/mysql-actualizar-un-campo-con-la-suma-de-unos-registros-de-otra-tabla/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
