2014-04-19 78 views
0

在這裏我想出了問題加入表,所以我有一個創建兩列像月,從表a.KOT_Items monthnames,現在我必須結合一些更coulmn從表Item_Master b,KOT_Main c, Outlet d,Category_Master e,Department_Master f但沒有結果我是新手MySQL可以幫助解決這個問題。在mysql中結合表格

查詢::

SELECT a.mon, 
      a.monthnames, 
      d.Outlet_Name, 
      e.category_Name, 
      f.Department_Name, 
      b.Item_Name, 
      a.Item_Qty, 
      a.Net_amount+a.Item_tax1 AS NetAmount, 
      a.Tran_Date 
    FROM 
     (SELECT 1 AS mon, 
       'Jan' AS monthnames 
     UNION SELECT 2, 
        'Feb' 
     UNION SELECT 3, 
        'Mar' 
     UNION SELECT 4, 
        'Apr' 
     UNION SELECT 5, 
        'May' 
     UNION SELECT 6, 
        'jun' 
     UNION SELECT 7, 
        'july' 
     UNION SELECT 8, 
        'Aug' 
     UNION SELECT 9, 
        'Sep' 
     UNION SELECT 10, 
        'Oct' 
     UNION SELECT 11, 
        'NoV' 
     UNION SELECT 12, 
        'Dec') AS months 
    LEFT JOIN a.KOT_Items AS i ON months.mon = MONTH(i.tran_date), 
               Item_Master b, 
               KOT_Main c, 
               Outlet d, 
               Category_Master e, 
               Department_Master f 

    WHERE 
    AND a.Main_Item_Code=b.Item_Code 
    AND e.Category_Code=b.Category_Code 
    AND e.Category_Code =f.Category_Code 
    AND d.Outlet_id = c.outlet_id 
    AND a.ref_no=c.ref_no 
    GROUP BY a.Bill_No 

除外結果爲

mon ||monthname || outlet_name || category_Name || Department_Name || Item_Name 

更新::

mon monthnames Outlet_Name  netamount 

4 Apr MEXICAN AMIGOS   1 
4 Apr MEXICAN AMIGOS   100 
4 Apr MEXICAN AMIGOS  150 
4 Apr MEXICAN AMIGOS   1500 
4 Apr MEXICAN AMIGOS 
4 Apr MEXICAN AMIGOS 
4 Apr MEXICAN AMIGOS  
4 Apr MEXICAN AMIGOS 
4 Apr MEXICAN AMIGOS 
1 jan 
2 feb 
3 mar 
5 may 
6 june 
7 july 
8 Aug 
9 Sep 
10 Oct 
11 nov 
12 Dec 

回答

0

像這樣的東西應該工作

SELECT m.mon, m.monthnames, d.Outlet_Name, e.category_Name, f.Department_Name, b.Item_Name, SUM(a.Item_Qty) AS Qty, SUM(a.Net_amount+a.Item_tax1) AS NetAmount 
    FROM KOT_Items a, 
     (SELECT 1 AS Mon, 'Jan' AS monthnames 
     UNION 
     SELECT 2 AS Mon, 'Feb' AS monthnames 
     UNION 
     SELECT 3 AS Mon, 'Mar' AS monthnames 
     UNION 
     SELECT 4 AS Mon, 'Apr' AS monthnames -- Complete Rest 
     ) AS m, 
     Item_Master b, 
     KOT_Main c, 
     Outlet d, 
     Category_Master e, 
     Department_Master f 
    WHERE MONTH(a.tran_date) = m.Mon 
    AND a.Main_Item_Code=b.Item_Code 
    AND e.Category_Code=b.Category_Code 
    AND e.Category_Code =f.Category_Code 
    AND d.Outlet_id = c.outlet_id 
    AND a.ref_no=c.ref_no 
    GROUP BY m.mon, m.monthnames, d.Outlet_Name, e.category_Name, f.Department_Name, b.Item_Name 
+0

感謝它的工作原理,但在我的數據庫中,我有一個月的數據,所以它顯示,但我想顯示結果在所有月份的一年,甚至幾個月沒有交易表 – user3331535

+0

使用月份作爲起點,並執行「左外連接「所有其他表格。例如。 SELECT .... FROM(SELECT ....)AS m LEFT JOIN KOT_Items a ON MONTH(a.tran_date)= m.Mon ..等等。 – unniks

+0

不要誤會我,如果你可以更新我的查詢它有助於學習你? – user3331535