クエリを作成しようとしています。これはパーセンテージを取得します。ここでは、テーブルの構造は次のとおりです。同じクエリ内の条件の合計を取得します。
STransaction:
TRANSACTIONID -> NUMBER(10,0)
TRANSACTIONMONTH -> VARCHAR2(10 BYTE)
CUSTOMER_CUSTOMERID -> NUMBER(8,0)
COMMERCIALDESCRIPTION -> VARCHAR2(500 BYTE)
AMOUNTTM -> NUMBER(8,2)
AMOUNTDESCRIPTION -> VARCHAR2(50 BYTE)
FOB -> NUMBER(10,2)
FOBUNIT -> NUMBER(10,2)
CFR -> NUMBER(10,2)
CFRUNIT -> NUMBER(10,2)
SUPPLIER_SUPPLIERID -> NUMBER(8,0)
BOARDINGCOUNTRY -> VARCHAR2(50 BYTE)
BOARDINDBAY -> VARCHAR2(400 BYTE)
TRANSPORTATIONVIA -> VARCHAR2(50 BYTE)
CUSTOMS -> VARCHAR2(50 BYTE)
TRANSACTIONYEAR -> VARCHAR2(4 BYTE)
TRANSACTIONDAY -> VARCHAR2(2 BYTE)
CHAPTER -> VARCHAR2(3 BYTE)
TARIFFHEADING -> NUMBER(12,0)
PRODUCTFAMILY_PRODUCTFAMILYID -> NUMBER(5,0)
はお客様:
CUSTOMERID -> NUMBER(8,0)
CUSTOMERNAME -> VARCHAR2(80 BYTE)
COUNTRY_COUNTRYID -> NUMBER(5,0)
ISVDT -> CHAR(1 BYTE)
サプライヤー:
SUPPLIERID -> NUMBER(8,0)
SUPPLIERNAME -> VARCHAR2(80 BYTE)
SUPPLIERCOUNTRY -> VARCHAR2(50 BYTE)
ProductFamily:
PRODUCTFAMILYID -> NUMBER(5,0)
PRODFAMNAME -> VARCHAR2(60 BYTE)
国:
COUNTRYID -> NUMBER(5,0)
COUNTRYNAME -> VARCHAR2(20 BYTE)
REGION_REGIONID -> NUMBER(5,0)
COUNTRYABBR -> VARCHAR2(5 BYTE)
私は毎年STRANSACTIONテーブルにCFR列で表される各顧客の売上高に占める割合を、取得するテーブルを作成する必要があります。割合は、各年の全顧客の総売上高から入手する必要があり
SELECT cus.customername c,
SUM(CASE WHEN tran.transactionyear = 2013 THEN tran.cfr ELSE 0 END) 2013,
SUM(CASE WHEN tran.transactionyear = 2014 THEN tran.cfr ELSE 0 END) 2014,
SUM(CASE WHEN tran.transactionyear = 2015 THEN tran.cfr ELSE 0 END) 2015,
SUM(CASE WHEN tran.transactionyear = 2016 THEN tran.cfr ELSE 0 END) 2016,
SUM(CASE WHEN tran.transactionyear = 2017 THEN tran.cfr ELSE 0 END) 2017
FROM Stransaction tran, Customer cus, Productfamily family, Country country
WHERE tran.customer_customerid = cus.customerid AND cus.country_countryid = country.countryid
AND tran.productfamily_productfamilyid = family.productfamilyid AND country.countryname = 'Germany'
AND tran.transactionyear > 2012 AND tran.transactionyear < 2018 AND family.prodfamname = 'Bond-offset Paper'
GROUP BY (cus.customername);
:以下のコードでは、私は毎年、各顧客の売上を取得するクエリを持っています。たとえば、2014年の顧客1の売上高の割合は、2014年のすべての顧客の合計売上に対する2014年の顧客1の売上と等しくなります。
C =カスタマー& & 1 = CustomerNameの私は、同じクエリで合計を取得できますか
C| 2013 | % | 2014 | % | 2015 | % | 2016 | % | 2017 |
|-------|-------|-------|-------|-------|-------|-------|-------|------|
1|165.250|100,00%|152.336|100,00%|136.540|100,00%|121.533|100,00%|80.345|
?私はOVERのような関数をテストしましたが、この関数はすべてのデータに適用されています(データはすべて年であり、特定の年ではありません - >適用されたため)。
ありがとう、私は答えの質に驚いており、実際に動作します。私はこの新しい標準を学ぶ良い本を知っているか、インターネットで検索するように私に勧めてもらえたら尋ねたいと思っていました。 @ThorstenKettner – BiteBat
いいえ、申し訳ありませんが、私は推薦がありません。私はSQLを20年以上使っていて、主にGoogleやSOから学んでいます。しかし、これは一般的な推奨事項ではありません。私はw3schoolsを見て、間違いなくそれをお勧めしませんが、私はどちらか他の勧告もありません。 –
どうもありがとうございました。 – BiteBat