<?xml version="1.0" encoding="windows-1251"?>
<rss version="0.92">
<channel>
<title>WikiJuanan - TablasReferenciaCruzadaSQL</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL</link>
<description>History/revisions of WikiJuanan/TablasReferenciaCruzadaSQL</description>
<language>en-us</language>
<item>
<title>2007-03-19 12:15:31</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+12%3A15%3A31</link>
<description>&lt;a name="p2287-1">&lt;/a>&lt;p class="auto" id="p2287-1">&lt;a name="sql" href="http://wiki.us.es/juanan/wakka.php?wakka=SQL" class="" title="SQL">SQL&lt;/a>&lt;/p>&lt;br />&lt;a name="p2287-2">&lt;/a>&lt;p class="auto" id="p2287-2">
Copiado de&amp;nbsp;&lt;a href="http://www.sqlteam.com/item.asp?ItemID=2955" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://www.sqlteam.com/item.asp?ItemID=2955&lt;/a>&lt;/p>&lt;br />
&lt;div class="indent">1	2 	3	4&lt;/div>&lt;a name="p2287-3">&lt;/a>&lt;p class="auto" id="p2287-3">
EXECUTE crosstab SELECT statement, summary calculation,	pivot column,	table name&lt;/p>&lt;br />
&lt;div class="indent"> 1. The&amp;nbsp;SELECT statement can&amp;nbsp;be&amp;nbsp;anything, as&amp;nbsp;long as&amp;nbsp;it has&amp;nbsp;proper syntax and&amp;nbsp;includes a&amp;nbsp;GROUP BY&amp;nbsp;clause. You&amp;nbsp;can use&amp;nbsp;JOINs, but&amp;nbsp;if&amp;nbsp;you use&amp;nbsp;table aliases you&amp;nbsp;should include the&amp;nbsp;alias in&amp;nbsp;the summary calculation expression (2).&lt;/div>
&lt;br />
&lt;div class="indent"> 2. The&amp;nbsp;summary calculation must have an&amp;nbsp;aggregate function like SUM(), AVG(), MIN(), MAX(), etc. You'd have to&amp;nbsp;modify the&amp;nbsp;code if&amp;nbsp;you want to&amp;nbsp;use DISTINCT with these functions. COUNT(*) won't work, you&amp;nbsp;have to&amp;nbsp;COUNT on&amp;nbsp;a column.&lt;/div>
&lt;br />
&lt;div class="indent"> 3. The&amp;nbsp;pivot column must be&amp;nbsp;in the&amp;nbsp;table (4). You&amp;nbsp;can use&amp;nbsp;an&amp;nbsp;expression for&amp;nbsp;the pivot column (a+b, LEFT(&lt;span class="missingpage">First&amp;nbsp;Name&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=FirstName/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a>,3), etc.) as&amp;nbsp;long as&amp;nbsp;it can&amp;nbsp;be&amp;nbsp;derived from the&amp;nbsp;table listed in&amp;nbsp;(4). A&amp;nbsp;&lt;span class="nobr">cross-tab&lt;/span> heading will be&amp;nbsp;created for&amp;nbsp;each distinct value in&amp;nbsp;the pivot colum/expression.&lt;/div>
&lt;br />
&lt;div class="indent"> 4. This table can&amp;nbsp;be&amp;nbsp;any table in&amp;nbsp;your database, or&amp;nbsp;another database if&amp;nbsp;you use&amp;nbsp;the full naming syntax (database.owner.table). Tables in&amp;nbsp;a linked server may&amp;nbsp;also work, but&amp;nbsp;I&amp;nbsp;haven't tested this. It's possible that a&amp;nbsp;derived table (nested SELECT) can&amp;nbsp;work, but&amp;nbsp;I&amp;nbsp;haven't tested this either. You&amp;nbsp;would need to&amp;nbsp;enclose the&amp;nbsp;SELECT statement in&amp;nbsp;parentheses, and&amp;nbsp;use a&amp;nbsp;table alias outside these parentheses, like this: '(SELECT &lt;span class="missingpage">Last&amp;nbsp;Name&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=LastName/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a> FROM myTable) AS&amp;nbsp;Surnames'&lt;/div>
&lt;br />&lt;a name="p2287-4">&lt;/a>&lt;p class="auto" id="p2287-4">
I'll list some &lt;span class="nobr">cross-tab&lt;/span> settings and&amp;nbsp;the results. Here's two&amp;nbsp;you can&amp;nbsp;run in&amp;nbsp;the pubs database:&lt;/p>&lt;br />&lt;a name="p2287-5">&lt;/a>&lt;p class="auto" id="p2287-5">
EXECUTE crosstab 'select title from titles inner join sales on&amp;nbsp;(sales.title_id=titles.title_id) &lt;br />
group by&amp;nbsp;title', 'sum(qty)','stor_id','stores'&lt;/p>&lt;br />&lt;a name="p2287-6">&lt;/a>&lt;p class="auto" id="p2287-6">
&lt;!--notypo-->&lt;/p>&lt;div class="code">&lt;code>&lt;font color=blue>CREATE&lt;/font>&amp;nbsp;&lt;font color=blue>PROCEDURE&lt;/font>&amp;nbsp;crosstab&amp;nbsp;&lt;br />
@select&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>8000&lt;/b>&lt;/font>),&lt;br />
@sumfunc&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>100&lt;/b>&lt;/font>),&amp;nbsp;&lt;br />
@pivot&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>100&lt;/b>&lt;/font>),&amp;nbsp;&lt;br />
@table&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>100&lt;/b>&lt;/font>)&amp;nbsp;&lt;br />
&lt;font color=blue>AS&lt;/font>&lt;br />&lt;a name="p2287-7">&lt;/a>&lt;p class="auto" id="p2287-7">
&lt;font color=blue>DECLARE&lt;/font>&amp;nbsp;@sql&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>8000&lt;/b>&lt;/font>),&amp;nbsp;@delim&amp;nbsp;&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>1&lt;/b>&lt;/font>)&lt;br />
&lt;font color=blue>SET&lt;/font>&amp;nbsp;NOCOUNT&amp;nbsp;&lt;font color=blue>ON&lt;/font>&lt;br />
&lt;font color=blue>SET&lt;/font>&amp;nbsp;ANSI_WARNINGS&amp;nbsp;&lt;font color=blue>OFF&lt;/font>&lt;/p>&lt;br />&lt;a name="p2287-8">&lt;/a>&lt;p class="auto" id="p2287-8">
&lt;font color=blue>EXEC&lt;/font>&amp;nbsp;('SELECT&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@pivot&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>AS&lt;/font>&amp;nbsp;pivot&amp;nbsp;&lt;font color=blue>INTO&lt;/font>&amp;nbsp;##pivot&amp;nbsp;&lt;font color=blue>FROM&lt;/font>&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@table&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>WHERE&lt;/font>&amp;nbsp;&lt;font color=green>&lt;b>1&lt;/b>&lt;/font>=2')&lt;br />
&lt;font color=blue>EXEC&lt;/font>&amp;nbsp;('INSERT&amp;nbsp;&lt;font color=blue>INTO&lt;/font>&amp;nbsp;##pivot&amp;nbsp;&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;&lt;font color=blue>DISTINCT&lt;/font>&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@pivot&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>FROM&lt;/font>&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@table&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>WHERE&lt;/font>&amp;nbsp;'&amp;nbsp;&lt;br />
+&amp;nbsp;@pivot&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>Is&lt;/font>&amp;nbsp;&lt;font color=blue>Not&lt;/font>&amp;nbsp;Null')&lt;/p>&lt;br />&lt;a name="p2287-9">&lt;/a>&lt;p class="auto" id="p2287-9">
&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;@sql='',&amp;nbsp;&amp;nbsp;@sumfunc=&lt;font color=blue>stuff&lt;/font>(@sumfunc,&amp;nbsp;&lt;font color=blue>len&lt;/font>(@sumfunc),&amp;nbsp;&lt;font color=green>&lt;b>1&lt;/b>&lt;/font>,&amp;nbsp;'&amp;nbsp;&lt;font color=blue>END&lt;/font>)'&amp;nbsp;)&lt;/p>&lt;br />&lt;a name="p2287-10">&lt;/a>&lt;p class="auto" id="p2287-10">
&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;@delim=&lt;font color=blue>CASE&lt;/font>&amp;nbsp;Sign(&amp;nbsp;&lt;font color=blue>CharIndex&lt;/font>('char',&amp;nbsp;data_type)+&lt;font color=blue>CharIndex&lt;/font>('date',&amp;nbsp;data_type)&amp;nbsp;)&amp;nbsp;&lt;br />
&lt;font color=blue>WHEN&lt;/font>&amp;nbsp;&lt;font color=green>&lt;b>0&lt;/b>&lt;/font>&amp;nbsp;&lt;font color=blue>THEN&lt;/font>&amp;nbsp;''&amp;nbsp;&lt;font color=blue>ELSE&lt;/font>&amp;nbsp;''''&amp;nbsp;&lt;font color=blue>END&lt;/font>&amp;nbsp;&lt;br />
&lt;font color=blue>FROM&lt;/font>&amp;nbsp;tempdb.information_schema.columns&amp;nbsp;&lt;br />
&lt;font color=blue>WHERE&lt;/font>&amp;nbsp;table_name='##pivot'&amp;nbsp;&lt;font color=blue>AND&lt;/font>&amp;nbsp;column_name='pivot'&lt;/p>&lt;br />&lt;a name="p2287-11">&lt;/a>&lt;p class="auto" id="p2287-11">
&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;@sql=@sql&amp;nbsp;+&amp;nbsp;''''&amp;nbsp;+&amp;nbsp;&lt;font color=blue>convert&lt;/font>(&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>100&lt;/b>&lt;/font>),&amp;nbsp;pivot)&amp;nbsp;+&amp;nbsp;'''&amp;nbsp;=&amp;nbsp;'&amp;nbsp;+&amp;nbsp;&lt;br />
&lt;font color=blue>stuff&lt;/font>(@sumfunc,&lt;font color=blue>charindex&lt;/font>(&amp;nbsp;'(',&amp;nbsp;@sumfunc&amp;nbsp;)+&lt;font color=green>&lt;b>1&lt;/b>&lt;/font>,&amp;nbsp;&lt;font color=green>&lt;b>0&lt;/b>&lt;/font>,&amp;nbsp;'&amp;nbsp;&lt;font color=blue>CASE&lt;/font>&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@pivot&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>WHEN&lt;/font>&amp;nbsp;'&amp;nbsp;&lt;br />
+&amp;nbsp;@delim&amp;nbsp;+&amp;nbsp;&lt;font color=blue>convert&lt;/font>(&lt;font color=blue>varchar&lt;/font>(&lt;font color=green>&lt;b>100&lt;/b>&lt;/font>),&amp;nbsp;pivot)&amp;nbsp;+&amp;nbsp;@delim&amp;nbsp;+&amp;nbsp;'&amp;nbsp;&lt;font color=blue>THEN&lt;/font>&amp;nbsp;'&amp;nbsp;)&amp;nbsp;+&amp;nbsp;',&amp;nbsp;'&amp;nbsp;&lt;font color=blue>FROM&lt;/font>&amp;nbsp;##pivot&lt;/p>&lt;br />&lt;a name="p2287-12">&lt;/a>&lt;p class="auto" id="p2287-12">
&lt;font color=blue>DROP&lt;/font>&amp;nbsp;&lt;font color=blue>TABLE&lt;/font>&amp;nbsp;##pivot&lt;/p>&lt;br />&lt;a name="p2287-13">&lt;/a>&lt;p class="auto" id="p2287-13">
&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;@sql=&lt;font color=blue>left&lt;/font>(@sql,&amp;nbsp;&lt;font color=blue>len&lt;/font>(@sql)-1)&lt;br />
&lt;font color=blue>SELECT&lt;/font>&amp;nbsp;@select=&lt;font color=blue>stuff&lt;/font>(@select,&amp;nbsp;&lt;font color=blue>charindex&lt;/font>('&amp;nbsp;&lt;font color=blue>FROM&lt;/font>&amp;nbsp;',&amp;nbsp;@select)+&lt;font color=green>&lt;b>1&lt;/b>&lt;/font>,&amp;nbsp;&lt;font color=green>&lt;b>0&lt;/b>&lt;/font>,&amp;nbsp;',&amp;nbsp;'&amp;nbsp;+&amp;nbsp;@sql&amp;nbsp;+&amp;nbsp;'&amp;nbsp;')&lt;/p>&lt;br />
&lt;font color=blue>EXEC&lt;/font>&amp;nbsp;(@select)&lt;br />
&lt;font color=blue>SET&lt;/font>&amp;nbsp;ANSI_WARNINGS&amp;nbsp;&lt;font color=blue>ON&lt;/font>&lt;/code>&lt;/div>&lt;a name="p2287-14">&lt;/a>&lt;p class="auto" id="p2287-14">&lt;!--/notypo-->&lt;/p>&lt;br />&lt;a name="p2287-15">&lt;/a>&lt;p class="auto" id="p2287-15">
&amp;laquo;EXECUTE crosstab 'select pagina, year(fecha) as&amp;nbsp;year from registro_web group by&amp;nbsp;pagina, year(fecha) order by&amp;nbsp;pagina, year desc', 'count(id_registro)', 'month(fecha)', 'registro_web'"&lt;/p></description>
</item>
<item>
<title>2007-03-19 11:22:37</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+11%3A22%3A37</link>
<description>edited by JuananRuiz</description>
</item>
<item>
<title>2007-03-19 11:22:27</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+11%3A22%3A27</link>
<description>edited by JuananRuiz</description>
</item>
<item>
<title>2007-03-19 11:21:52</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+11%3A21%3A52</link>
<description>edited by JuananRuiz</description>
</item>
<item>
<title>2007-03-19 11:07:37</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+11%3A07%3A37</link>
<description>edited by JuananRuiz</description>
</item>
<item>
<title>2007-03-19 10:59:31</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+10%3A59%3A31</link>
<description>edited by JuananRuiz</description>
</item>
<item>
<title>2007-03-19 10:59:14</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=TablasReferenciaCruzadaSQL/show&amp;time=2007-03-19+10%3A59%3A14</link>
<description>edited by JuananRuiz</description>
</item>
</channel>
</rss>

 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
 </script>
 <script type="text/javascript">
  _uacct = "UA-1947893-2";
  urchinTracker();
 </script>

