2010-04-26 140 views
0

我有一些麻烦,下面的查询最初是为一些访问的形式完成:加入两个查询到一个查询或制作一个子查询

SELECT qry1.TCKYEAR AS Yr, COUNT(qry1.SID) AS STUDID, qry1.SID AS MID, table_tckt.tckt_tick_no 
FROM table_tckt INNER JOIN qry1 ON table_tckt.tckt_SID = qry1.SID 
GROUP BY qry1.TCKYEAR, qry1.SID, table_tckt.tckt_tick_no 
HAVING (((table_tckt.tick_no)=[forms]![frmNAME]![cboNAME])); 

SELECT table_tckt.sid, FORMAT([tckt_iss_date], 'yyyy') AS TCKYEAR, table_tckt.tckt_tick_no, table_tckt.licstate 
FROM table_tckt 
WHERE (((table_tckt.licstate)<>"NA")); 

我不再与Access工作,但JSP的形式。我需要以某种方式将这两个查询合并为一个查询,或者找到另一种查询另一个查询的方式。

+0

任何帮助我们非常感谢! – 2010-04-26 16:21:29

回答

1

以下是SQL Server中最快捷的方法。我不知道你作为后端使用的是什么,但也许它会让你指向正确的方向。

它基本上使用with {}中的语句来创建一个名为sql1的内存表,您可以查询。

with 
{ 
SELECT table_tckt.sid, 
    FORMAT([tckt_iss_date], 'yyyy') AS TCKYEAR, 
    table_tckt.tckt_tick_no, 
    table_tckt.licstate 
FROM table_tckt 
WHERE (((table_tckt.licstate)<>"NA")); 
    } as sql1 
SELECT qry1.TCKYEAR AS Yr, 
    COUNT(qry1.SID) AS STUDID, 
    qry1.SID AS MID, 
    table_tckt.tckt_tick_no 
FROM table_tckt 
INNER JOIN qry1 ON table_tckt.tckt_SID = qry1.SID 
GROUP BY qry1.TCKYEAR, qry1.SID, table_tckt.tckt_tick_no 
HAVING (((table_tckt.tick_no)[email protected])); 
+0

这确实有效,我改变的唯一的事情就是{}到()。 非常感谢 – 2010-04-26 17:36:20