2

こんにちは、2 つのテーブルを使用して 1 つのクエリを作成しています。私は、Household_tbl に自治体とバランガイおよび世帯_コネクタ_id フィールドを持っていますが、tbl_household_member である 2 番目のテーブルには、世帯_コネクタ_id フィールドしかありません。サブクエリで使用する最初の選択のエイリアスが機能していません。助けてください。

クエリは次のとおりです。

SELECT household_connector_id as h_id,
       barangay as b,
       municipality as m,

(SELECT COUNT(*) FROM household_tbl WHERE municipality = m
AND SUBSTR(expiry_date,1,2) LIKE "04" AND SUBSTR(expiry_date,7,4) LIKE "2013" AND NOT(expiry_date = "") AND NOT(expiry_date = "n/a"))   
+

(SELECT COUNT(*) FROM tbl_household_members WHERE household_connector_id = h_id
AND SUBSTR(expiry_date,1,2) LIKE "04" AND SUBSTR(expiry_date,7,4) LIKE "2013" AND NOT(expiry_date = "") AND NOT(expiry_date = "n/a")) as total

FROM (SELECT DISTINCT * FROM household_tbl) AS TI GROUP BY b
4

1 に答える 1

1

別の列に割り当てたエイリアスを参照することはできないため、列名を参照する必要があります。

SELECT household_connector_id as h_id,
  barangay as b,
  municipality as m,
  (SELECT COUNT(*) 
   FROM household_tbl t
   WHERE t.municipality = TI.municipality  -- changed to column name
    AND SUBSTR(t.expiry_date,1,2) LIKE "04" 
     AND SUBSTR(t.expiry_date,7,4) LIKE "2013" 
     AND NOT(t.expiry_date = "") 
     AND NOT(t.expiry_date = "n/a")) +
  (SELECT COUNT(*) 
   FROM tbl_household_members h
   WHERE h.household_connector_id = TI.household_connector_id   -- changed to column name
    AND SUBSTR(h.expiry_date,1,2) LIKE "04" 
     AND SUBSTR(h.expiry_date,7,4) LIKE "2013" 
     AND NOT(h.expiry_date = "") 
     AND NOT(h.expiry_date = "n/a")) as total
FROM 
(
  SELECT DISTINCT * 
  FROM household_tbl
) AS TI 
GROUP BY barangay
于 2013-04-04T03:50:16.343 に答える