SQL嵌套查询总结
<p>IT也有一段时间了,刚开始的时候``````<br>
的困难主要是在编程语言上,数组,逻辑,算法,...<br>
这些都过来了之后,困难就上升到数据库设计上了.<br>
以及数据逻辑.<br>
一个优秀的系统,会集成优秀的程序和优秀的数据库设计.<br>
要做到这点得有足够的经验.<br>
这是我写的一个结合UINON的嵌套查询.<br>
将五个方面的报表放到一个临时表里,再从临时表里,将所要的数据查询出来. </p>
<p class="codetitle">
<span><u>复制代码</u></span> 代码如下:</p>
<p class="codebody">
<br>
$sql="SELECT type , sum( yjsl ) as yjsl , sum( yysl ) as yysl, sum( jyrs ) as jyrs, sum( jycs ) as jycs<br>
FROM (<br>
SELECT c.mc AS<br>
TYPE , count( d.lsh ) AS yjsl, 0 AS yysl, 0 AS jyrs, 0 AS jycs<br>
FROM sys_dzxxb AS b, sys_jcb AS c, sys_dzyjb AS d<br>
WHERE b.bm = c.lsh<br>
AND d.dzlsh = b.lsh<br>
GROUP BY c.mc<br>
UNION SELECT c.mc AS<br>
TYPE , 0 AS yjsl, count( e.lsh ) AS yysl, 0 AS jyrs, 0 AS jycs<br>
FROM sys_dzxxb AS b, sys_jcb AS c, sys_dzyy AS e<br>
WHERE b.bm = c.lsh<br>
AND e.dzlsh = b.lsh<br>
GROUP BY c.mc<br>
UNION SELECT c.mc AS<br>
TYPE , 0 AS yjsl, 0 AS yysl, count( DISTINCT e.dzlsh ) AS jyrs, 0 AS jycs<br>
FROM sys_dzxxb AS b, sys_jcb AS c, sys_ltxxb AS e<br>
WHERE b.bm = c.lsh<br>
AND e.dzlsh = b.lsh<br>
GROUP BY c.mc<br>
UNION SELECT c.mc AS<br>
TYPE , 0 AS yjsl, 0 AS yysl, 0 AS jyrs, count( DISTINCT e.lsh ) AS jycs<br>
FROM sys_dzxxb AS b, sys_jcb AS c, sys_ltxxb AS e<br>
WHERE b.bm = c.lsh<br>
AND e.dzlsh = b.lsh<br>
GROUP BY c.mc<br>
) AS temptable<br>
GROUP BY TYPE ";</p>
<p>
<br>
分享给大家.</p>
頁:
[1]