2017-07-04 10 views
0
select m_product.name ,c_bpartner.name from(
    select count(m_product.name) 
    from m_product 
    union 
    select count(c_bpartner.name) 
    from c_bpartner 
) as total 

エラーが発生しています。sqlが句から抜けた

エラー:

missing from-clause entry for table m_product.

Imは、テーブル内の製品とBPARTNERの合計数を取得しようとしています。 ありがとうございました。

|total number of product|total number of bp| 
|  1000    | 1200   | 
|      |     | 

これは私が達成しようとしていることです、私はジャスパー報告書を使ってこれを行っています。

+2

あなたが出力として得るために何をしようとしています?ネストされたSQL句の外側からm_productおよびc_bpartnerテーブルにアクセスすることはできず、関連のないカラムではユニオンを実行しています。 SQLはロジックを欠いているようだ。 –

+0

個人的なアドバイス:SQLステートメントをフォーマットしようとすると - [SQLスタイルガイド](http://www.sqlstyle.guide/) - 適切な形式のSQLステートメントがトラブルシューティングを行い、さらに簡単に変更できますあなたの仲間 –

+0

サンプルデータ、希望の結果、およびあなたがしたいことの説明であなたの質問を編集(または新しい質問)してください。このクエリは意味をなさない。 –

答えて

0

これを試してください。

select total.mprodName ,total.cpartName from(
    select count(m_product.name) AS mprodName 
    from m_product 
    union 
    select count(c_bpartner.name) AS cbpartName 
    from c_bpartner 
) as total 
0

する必要があります。あなたのクエリは総配線されています。なぜUNIONが必要なのかわからないのは、UNION結果セットの列を使用していないからです。あなたはおそらくちょうどocurrancesの数と、各製品を選択して、BPARTNERのために同じことを行う必要があります

select m_product.name , 
c_bpartner.name 
from m_product 
join c_bpartner on m_product.id = c_bpartner.id; 
0

あなたはFROM句でc_bpartnerテーブル参照が欠落している原因:あなたは私はあなたがあなたの列別名を与える必要があると思うので、それは次のようになり、エイリアス、グループ

select MyCount,Name from(
    select MyCount=count(m_product.name),Name=m_product.name 
    from m_product 
    group by m_product.name 
    union 
    select count(c_bpartner.name) ,c_bpartner.name 
    from c_bpartner 
    group by c_bpartner.name 
) as total 
+0

ユニオンを使用する理由は、2つの列を持つことです.1つは製品の総数、もう1つはビジネスパートナの総数です –

0

この文のように、テーブル間JOINを実行することになります。

 SELECT m_product.name 
      ,COUNT(m_product.name)  
     FROM m_product 
    GROUP BY m_product.name 
UNION ALL 
     SELECT c_bpartner.name 
      ,COUNT(c_bpartner.name)  
     FROM c_bpartner 
    GROUP BY c_bpartner.name 
0

これを試してみてください:

with output as (
    select count(m_product.name) from m_product union 
    select count(c_bpartner.name) from c_bpartner 
) 
select * from output; 
0
select total.m_product_name ,total.c_bpartner_name from(
    select count(m_product.name) as m_product_name,'NIL' as c_bpartner_name 
    from m_product 
    union 
    select 'NIL',count(c_bpartner.name) 
    from c_bpartner 
) as total 
関連する問題