0
select  ((normalcost*25*0.5)+(schoolcost*25)) as "projectedcost" 
from    (   select  count(orderno) as normalcost 
            from    platterorder 
            where to_char(deliveryDate,'MON-YYYY')='APR-2013'
        ),
        (   select  count(orderno) as schoolcost 
            from    schoolorder 
            where to_char(deliveryDate,'MON-YYYY')='APR-2013'
        );

上記のコードは完全に機能しますが、0.5 の代わりに discountpercent 列を追加しようとすると、エラーが表示されます

関連するテーブルは次のとおりです

PlatterOrder
(   orderNo, 
    deliveryDate, 
    deliveryTime, 
    invoiced, 
    isBulk, 
    platterQuantity, 
    discountPercent, 
    clientNo        
)

SchoolOrder
(   orderNo, 
    deliveryDate, 
    deliveryTime, 
    invoiced, 
    taxExPercent,
    clientNo
);
4

2 に答える 2

0

列 discountPercent がクエリ内のどこにも宣言されていないため、エラーが表示されています。何らかの方法で追加する必要はありません。必要な discountPercent の値は? たとえば、月の平均を使用したくない場合は、次のクエリを使用します。

select  ((normalcost*25*avgdiscountPercent)+(schoolcost*25)) as "projectedcost" 
from    (   select  count(orderno) as normalcost 
            from    platterorder 
            where to_char(deliveryDate,'MON-YYYY')='APR-2013'
        ),
        (   select  count(orderno) as schoolcost 
            from    schoolorder 
            where to_char(deliveryDate,'MON-YYYY')='APR-2013'
        ),
        (select avg(discountPercent) as avgdiscountPercent
            from platterorder
            where to_char(deliveryDate,'MON-YYYY')='APR-2013'
        );
于 2013-06-02T21:26:18.370 に答える
0

あなたのコードに従っているかどうかはわかりませんが、discountpercent 列をどこにも選択していません。2 つのサブクエリで他のフィールドのみを選択しているため、SELECT 句では使用できません。あなたの例が機能し、月に 1 つの割引率しかない場合は、次のようになります。

select ((normalcost*25*0.5)+(schoolcost*25)) as "projectedcost" 
from (select count(orderno) as normalcost 
      from platterorder where to_char(deliveryDate,'MON-YYYY')='APR-2013')
  , (select count(orderno) as schoolcost 
     from schoolorder where to_char(deliveryDate,'MON-YYYY')='APR-2013');
  , (select DISTINCT discountpercent  as discountpercent  
     from platterorder where to_char(deliveryDate,'MON-YYYY')='APR-2013');

全体の構成は奇妙ですが、参加はありません。割引率は月ごとにのみ変化しますか?

于 2013-06-02T14:50:49.363 に答える