赛捷软件论坛's Archiver

dannis 发表于 2009-2-15 08:34

提供一个SQL请求者的例子

<P>SELECT EEE.GZZX,EEE.GZZXMC,EEE.GDH,EEE.CPDM,ITMMASTER.ITMDES1_0,EEE. XQSL,EEE.LQSL,EEE.XHSL,EEE.THSL,EEE.BSSL,<FONT color=#ff0000>CASE WHEN EEE.SHSL&lt;=0 OR EEE.SHSL=EEE.LQSL&nbsp; THEN 0<BR>ELSE EEE.SHSL END AS SHSL,ROUND(CASE WHEN EEE.SHSL&lt;=0 OR EEE.SHSL=EEE.LQSL&nbsp; THEN 0 ELSE EEE.SHSL END /CASE WHEN EEE.XHSL=0 THEN 1 ELSE EEE.XHSL END,2)*100 AS XHL</FONT><BR>&nbsp;FROM<BR>(SELECT DDD.GZZX,WORKSTATIO.WSTDES_0&nbsp; AS GZZXMC,DDD.GDH,DDD.CPDM,DDD. XQSL,DDD.LQSL,DDD.XHSL,DDD.THSL,DDD.BSSL,(DDD.LQSL-DDD.XHSL-DDD.THSL-DDD.BSSL) AS SHSL<BR>&nbsp;FROM<BR>(<BR>SELECT CCC.GZZX,CCC.GDH,CCC.CPDM,SUM(XQSL) AS XQSL,SUM(LQSL) AS LQSL,SUM(XHSL) AS XHSL,SUM(THSL) AS THSL,SUM(BSSL) AS BSSL FROM<BR>(<BR>SELECT MFGOPE.MFGNUM_0 AS GDH,MFGOPE.EXTLAB_0 AS GZZX,MFGMAT.ITMREF_0 AS CPDM,MFGMAT.RETQTY_0 AS XQSL,0 AS LQSL,0 AS XHSL,0 AS THSL,0 AS BSSL<BR>FROM MFGOPE <BR>LEFT JOIN MFGMAT<BR>ON MFGOPE.MFGNUM_0=MFGMAT.MFGNUM_0 AND MFGOPE.OPENUM_0 = MFGMAT.BOMOPE_0<BR>WHERE MFGOPE.XMMSTA_0=2 AND SUBSTR(MFGMAT.ITMREF_0,1,1)=&#39;2&#39; AND MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39; AND MFGOPE.XOPESTR_0&gt;=%1% AND MFGOPE.XOPESTR_0&lt;=%2% <BR>UNION ALL<BR>SELECT QQQ.GDH AS GDH,MFGOPE.EXTLAB_0 AS GZZX,QQQ.CPDM AS CPDM,0 AS XQSL,QQQ.LQSL AS LQSL,0 AS XHSL,0 AS THSL,0 AS BSSL FROM<BR>(SELECT MFGNUM_0 AS GDH,OPENUM_0 AS GXH,ITMREF_0 AS CPDM,SUM(USEQTY_0) AS LQSL FROM<BR>MFGMATTRK<BR>WHERE SUBSTR(ITMREF_0,1,1)=&#39;2&#39; AND MFGNUM_0 IN <BR>(<BR>SELECT DISTINCT MFGOPE.MFGNUM_0 FROM MFGMAT <BR>LEFT JOIN MFGOPE<BR>ON MFGOPE.MFGNUM_0=MFGMAT.MFGNUM_0 AND MFGOPE.OPENUM_0 = MFGMAT.BOMOPE_0<BR>WHERE MFGOPE.XMMSTA_0=2 AND SUBSTR(MFGMAT.ITMREF_0,1,1)=&#39;2&#39; AND MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39;<BR>AND MFGOPE.XOPESTR_0&gt;=%1% AND MFGOPE.XOPESTR_0&lt;=%2%)<BR>GROUP BY MFGNUM_0,OPENUM_0,ITMREF_0)QQQ <BR>LEFT JOIN <BR>MFGOPE<BR>ON QQQ.GDH=MFGOPE.MFGNUM_0 AND QQQ.GXH=MFGOPE.OPENUM_0<BR>UNION ALL</P><P>SELECT GGGG.GDH AS GDH,GGGG.GZZX AS GZZX,BOMD.CPNITMREF_0 AS CPDM,0 AS XQSL,0 AS LQSL,BOMD.BOMQTY_0*GGGG.RKSL AS XHSL,<BR>0 AS THSL,0 AS BSSL FROM<BR>(<BR>SELECT RRRR.GDH AS GDH,RRRR.GZZX AS GZZX,RRRR.CPDM AS CPDM,MFGITM.BOMALT_0 AS WLQD,RRRR.RKSL AS RKSL FROM<BR>(SELECT MFGITMTRK.MFGNUM_0 AS GDH,MFGITMTRK.WST_0 AS GZZX,MFGITMTRK.ITMREF_0 AS CPDM,MFGITMTRK.UOMCPLQTY_0/ITMMASTER.SAUSTUCOE_0 AS RKSL FROM MFGITMTRK<BR>LEFT JOIN <BR>ITMMASTER<BR>ON MFGITMTRK.ITMREF_0=ITMMASTER.ITMREF_0<BR>WHERE SUBSTR(MFGITMTRK.ITMREF_0,1,1)=&#39;1&#39;<BR>)RRRR<BR>LEFT JOIN MFGITM<BR>ON RRRR.GDH=MFGITM.MFGNUM_0<BR>)GGGG<BR>RIGHT JOIN<BR>BOMD<BR>ON GGGG.CPDM=BOMD.ITMREF_0 AND GGGG.WLQD=BOMD.BOMALT_0<BR>WHERE SUBSTR(BOMD.CPNITMREF_0,1,1)=&#39;2&#39; AND<BR>GGGG.GDH IN <BR>(<BR>SELECT DISTINCT MFGOPE.MFGNUM_0 FROM MFGMAT <BR>LEFT JOIN MFGOPE<BR>ON MFGOPE.MFGNUM_0=MFGMAT.MFGNUM_0 AND MFGOPE.OPENUM_0 = MFGMAT.BOMOPE_0<BR>WHERE MFGOPE.XMMSTA_0=2 AND SUBSTR(MFGMAT.ITMREF_0,1,1)=&#39;2&#39; AND MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39;<BR>AND MFGOPE.XOPESTR_0&gt;=%1% AND MFGOPE.XOPESTR_0&lt;=%2%)</P><P>UNION ALL<BR>SELECT BBB.MFGNUM_0 AS GDH, MFGOPE.EXTLAB_0 AS GZZX,BBB.ITMREF_0 AS CPDM,0 AS XQSL,0 AS LQSL,0 AS XHSL,BBB.USEQTY_0 AS THSL,0 AS BSSL&nbsp; FROM<BR>(SELECT MFGMATTRK.MFGNUM_0,MFGMATTRK.OPENUM_0,MFGMATTRK.ITMREF_0,MFGMATTRK.USEQTY_0 FROM MFGMATTRK <BR>LEFT JOIN<BR>STOJOU<BR>ON MFGMATTRK.MFGTRKNUM_0=STOJOU.VCRNUM_0<BR>WHERE MFGMATTRK.MATTYP_0=3 AND STOJOU.STA_0=&#39;A1&#39; AND SUBSTR(MFGMATTRK.ITMREF_0,1,1)=2)BBB<BR>LEFT JOIN<BR>MFGOPE<BR>ON BBB.MFGNUM_0=MFGOPE.MFGNUM_0 AND BBB.OPENUM_0=MFGOPE.OPENUM_0<BR>WHERE MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39; AND BBB.MFGNUM_0 IN<BR>(<BR>SELECT DISTINCT MFGOPE.MFGNUM_0 FROM MFGMAT <BR>LEFT JOIN MFGOPE<BR>ON MFGOPE.MFGNUM_0=MFGMAT.MFGNUM_0 AND MFGOPE.OPENUM_0 = MFGMAT.BOMOPE_0<BR>WHERE MFGOPE.XMMSTA_0=2 AND SUBSTR(MFGMAT.ITMREF_0,1,1)=&#39;2&#39; AND MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39;<BR>AND MFGOPE.XOPESTR_0&gt;=%1% AND MFGOPE.XOPESTR_0&lt;=%2%)<BR>UNION ALL<BR>SELECT BBB.MFGNUM_0 AS GDH, MFGOPE.EXTLAB_0 AS GZZX,BBB.ITMREF_0 AS CPDM,0 AS XQSL,0 AS LQSL,0 AS XHSL,BBB.USEQTY_0 AS THSL,0 AS BSSL&nbsp; FROM<BR>(SELECT MFGMATTRK.MFGNUM_0,MFGMATTRK.OPENUM_0,MFGMATTRK.ITMREF_0,MFGMATTRK.USEQTY_0 FROM MFGMATTRK <BR>LEFT JOIN<BR>STOJOU<BR>ON MFGMATTRK.MFGTRKNUM_0=STOJOU.VCRNUM_0<BR>WHERE MFGMATTRK.MATTYP_0=3 AND STOJOU.STA_0=&#39;R9&#39; AND SUBSTR(MFGMATTRK.ITMREF_0,1,1)=2)BBB<BR>LEFT JOIN<BR>MFGOPE<BR>ON BBB.MFGNUM_0=MFGOPE.MFGNUM_0 AND BBB.OPENUM_0=MFGOPE.OPENUM_0<BR>WHERE MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39; AND BBB.MFGNUM_0 IN<BR>(<BR>SELECT DISTINCT MFGOPE.MFGNUM_0 FROM MFGMAT <BR>LEFT JOIN MFGOPE<BR>ON MFGOPE.MFGNUM_0=MFGMAT.MFGNUM_0 AND MFGOPE.OPENUM_0 = MFGMAT.BOMOPE_0<BR>WHERE MFGOPE.XMMSTA_0=2 AND SUBSTR(MFGMAT.ITMREF_0,1,1)=&#39;2&#39; AND MFGOPE.EXTLAB_0&lt;&gt;&#39; &#39;<BR>AND MFGOPE.XOPESTR_0&gt;=%1% AND MFGOPE.XOPESTR_0&lt;=%2%)<BR>) CCC<BR>WHERE SUBSTR(CCC.CPDM,1,1)=&#39;2&#39;&nbsp; AND&nbsp; CCC.GZZX &gt;=%3%&nbsp; AND&nbsp; CCC.GZZX &lt;=%4% <BR>GROUP BY&nbsp; CCC.GZZX,CCC.GDH,CCC.CPDM<BR>ORDER BY CCC.GZZX,CCC.GDH,CCC.CPDM<BR>)DDD<BR>LEFT JOIN<BR>WORKSTATIO<BR>ON DDD.GZZX=WORKSTATIO.WST_0<BR>)EEE<BR>LEFT JOIN<BR>ITMMASTER<BR>ON <BR>EEE.CPDM=ITMMASTER.ITMREF_0</P><P>这个例子具有很有代表性,大家可以好好研究一下.<IMG src="http://www.sagesoft.cn/bbs/images/Emotions/11.gif">&nbsp;红色字体部分请多注意</P><p>[此帖子已被 dannis 在 2009-2-15 0:36:05 编辑过]

Jerry.huang 发表于 2009-2-25 22:35

Re:提供一个SQL请求者的例子

晕,谁这么厉害。上面功能干什么用的阿

luoxiong 发表于 2009-6-19 18:29

Re:提供一个SQL请求者的例子

<P>牛人啊,能不能说说这个是查询什么的?</P><P>工单追踪情况?</P>

dannis 发表于 2009-6-19 22:53

Re:提供一个SQL请求者的例子

<P>是就是工单追踪用的SQL请求者。</P>

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.