2016-01-10 77 views
0
SELECT "region", sum("items"), sum("actcost") 
FROM "apr","Regions" 
WHERE "bnfname" LIKE 'Flucloxacillin %' AND apr.sha=Regions.sha 
GROUP BY "region" 

下面給出錯誤:錯誤:缺少FROM子句條目表

ERROR: missing FROM-clause entry for table "regions"

+2

[不良習慣踢: style JOINs](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號 - 在ANSI - ** 92 ** SQL標準(**超過20年**之前)中,*表單的分隔列表* style被替換爲* proper * ANSI'JOIN'語法,並且不鼓勵使用 –

+0

我相信它的一個完全查詢。我正在嘗試使用一個密鑰(在這種情況下是SHA)來獲取每個地區的項目總數和操作成本。 我是新來的sql,所以我的問題可能是完全愚蠢的 –

+1

這是一個完整的查詢,但你應該停止使用那些古老的和古老的隱式聯接。改爲使用顯式的「JOIN」。而且你應該避免引用標識符,它們比它們值得的更麻煩。 –

回答

0

試試這個:

SELECT "region", sum("items"), sum("actcost") 
FROM "apr","Regions" 
WHERE "bnfname" LIKE 'Flucloxacillin %' AND "apr"."sha"="Regions"."sha" 
GROUP BY "region" 
+0

我早些時候嘗試過。當我按照你說的那樣做時,它給了我以下錯誤: 錯誤:關係「區域」不存在 –

+0

嘗試更改你的where語句,以便它變成:WHERE「bnfname」LIKE'Flucloxacillin%'AND「apr」。 sha =「Regions」.sha – Skywalker

+0

工作就像一個魅力!非常感謝!你真的救了我的命! –

0
SELECT apr.region, 
     SUM(apr.items), 
     SUM(apr.actcost) 
FROM apr, 
     Regions 
WHERE apr.bnfname LIKE 'Flucloxacillin %' 
     AND apr.sha = regions.sha 
GROUP BY apr.region 

或者使用加入

SELECT apr.region, 
     SUM(apr.items), 
     SUM(apr.actcost) 
FROM apr 
     join regions 
     ON apr.sha = regions.sha 
WHERE apr.bnfname LIKE 'Flucloxacillin %' 
GROUP BY apr.region 
+0

區域列實際上位於Regions表中。我用正確的表格試過了你的建議,但它仍然無效。 –

+0

您應該創建SQL小提琴現在 –

+0

SELECT Regions.region, SUM(apr.items), SUM(apr.actcost) APR的 加入 「地區」 ON apr.sha = Regions.sha WHERE apr.bnfname LIKE「%氟氯西林」 GROUP BY Regions.region 只是嘗試做以下,我得到的FROM子句錯誤再次 –