本質的に、私は一緒に結合する必要がある2つのテーブル(購入と売り上げ)があります。どちらのテーブルも異なる主キーを持ちますが、同じ外部キーを共有しています。購入が行われるたびに、新しいエントリが作成されます(それ自身のプライマリキーがあります)。販売が行われるたびに、新しいエントリが作成されます(独自のキーを使用)。使用されるテーブルのSQL:2つのテーブルを合計して結合しようとすると重複データを取得する
概要:
Purchase Data
Individual Product Cost (AS IPC)
Sales Tax (AS ST)
Quantity (AS Q)
SKU (Foreign Key)
Primary Key (AS PK)
Sales
Amount Sold (AS AS)
Total (AS T)
SSKU(Foreign Key)
Primary Key (AS PK)
私は奇妙な結果を得る製品に基づいてデータを合計して参加しようとします。
購入表のデータ:
SKU | IPC | ST | Q | PK
1 2.40 .02 5 1
2 5.00 .05 20 2
3 4.00 .04 5 3
1 5.00 .04 20 4
売上表:
SSKU | T | AS | PK
1 10 2 1
2 9 1 2
3 9 4 3
1 9 1 4
2 9 2 5
1 9 2 6
1 9 4 7
期待される成果
SKU | (IPC + ST)Q | Q | SUM AS | SUM T
1 354.9 25 9 37
2 101 20 3 9
3 80.8 5 4 18
OpenOfficeのBaseのスクリプトの作成者をしようとすると、それは私に期待される結果を与えるだろう製品3については、製品1および2については間違っている。
私はSQLプログラミングを読み、その手を試しました。私はこれがマージの前に2つのテーブルを別々に合計することによって問題を解決すると思う。代わりに、私は間違いを今でも受けており、間違いを見つけることはできません。
現在のコード:
SELECT
"A"."SKU"
,SUM(("A"."Individual Product Cost" + "A"."Sales Tax") * "A"."Quantity")
,"A"."Quantity"
,"D"."Sales"
,"D"."Sold"
FROM "PurchaseData" AS "A"
Inner Join
(
Select
"ACT"."SSKU"
,SUM("ACT"."Amount Sold") AS Sold
,SUM("ACT"."Total") AS Sales
From
"Sales" AS ACT
GROUP BY
"ACT"."SSKU"
)
AS D
on "A"."SKU" = "D"."SSKU"
Group By
"A"."SKU"
EDIT:ランダムなオンライン文法チェッカーによると、それはライン3(私はそれを見ることはありません) です。 は、OpenOfficeの基地によると:
SQLステータス:HY000 エラーコード:1000
構文エラー、予期しない$エンド、BETWEENまたはINまたはSQL_TOKEN_LIKE
エラーとは何ですか? –
OpenOfficeの基地によると、ランダムな構文チェッカーによると、その線3上:SQL式 SQLステータスで 構文エラー:HY000 エラーコード:SQL表現 SQLステータス1000 構文エラー:HY000 エラーコード:1000 予期しない$ end、BETWEENまたはINまたはSQL_TOKEN_LIKEを期待する – midir
salesで行ったのと同じサブクエリで購入データを合計し、集計なしで両方のサブクエリを結合することができます – Jayvee