本人写的一个SQL语句 感觉效率太低了 不知还能不能有所优化,希望了解或知道的兄弟帮帮忙 ·~在此谢了
SELECT a.cst_Id, a.cst_no, a.cst_lineno, b.rline_name AS LineName, a.cst_leavetime, 
      g.car_trade AS cst_carno, c.ch_name AS CartHost, d.ccomp_name AS ComName,
          (SELECT COUNT(*)
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1') AS TicketNum,
          (SELECT COUNT(*)
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1' AND cart_type = '1') AS AllNum,
          (SELECT COUNT(*)
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1' AND cart_type != '1') 
      AS DiscountNum,
          (SELECT cast(SUM(cart_preprice) AS decimal(10, 2))
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1') AS TicketMoney,
          (SELECT cast(SUM(cart_preprice) AS decimal(10, 2))
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1' AND cart_type = '1') 
      AS AllMoney,
          (SELECT cast(SUM(cart_preprice) AS decimal(10, 2))
         FROM t_carticket
         WHERE cart_tempID = a.cst_ID AND cart_flag = '1' AND cart_type != '1') 
      AS DiscountMoney,
          (SELECT COUNT(*)
         FROM t_ticketexaminer_detail e INNER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND (e.Ted_tempID = a.cst_ID)) AS CheckNum,
          (SELECT COUNT(*)
         FROM t_ticketexaminer_detail e INNER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND cart_type != '1' AND (e.Ted_tempID = a.cst_ID)) 
      AS CheckDiscountNum,
          (SELECT COUNT(*)
         FROM t_ticketexaminer_detail e INNER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND cart_type = '1' AND (e.Ted_tempID = a.cst_ID)) 
      AS CheckAllNum,
          (SELECT SUM(f.cart_preprice)
         FROM t_ticketexaminer_detail e LEFT OUTER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND (f.cart_tempID = a.cst_ID)) AS CheckMoney,
          (SELECT SUM(f.cart_preprice)
         FROM t_ticketexaminer_detail e LEFT OUTER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND cart_type = '1' AND (f.cart_tempID = a.cst_ID)) 
      AS CheckAllMoney,
          (SELECT SUM(f.cart_preprice)
         FROM t_ticketexaminer_detail e LEFT OUTER JOIN
               t_carticket f ON e.ted_invoice = f.cart_invoiceno
         WHERE f.cart_flag = '1' AND cart_type != '1' AND (f.cart_tempID = a.cst_ID)) 
      AS CheckDiscountMoney
FROM t_carschemeTemp a INNER JOIN
      t_roadline b ON a.cst_lineno = b.rline_no INNER JOIN
      t_carhost c ON a.cst_carno = c.ch_no LEFT OUTER JOIN
      t_concompany d ON c.ch_concomno = d.ccomp_no INNER JOIN
      t_car g ON a.cst_carno = g.car_no
WHERE (a.cst_flag = '1') AND (a.cst_add IN ('1', '0')) AND (a.cst_leavetime BETWEEN 
      '2007-02-01 00:00:00 ' AND '2007-02-01 23:59:59')
ORDER BY a.cst_leavetime DESC