私はこのMySQLクエリを正しく取得できないようです。私のテーブルには、小売店の年間在庫データが含まれています。ここではテーブルスキーマです:MySQLのクエリ - 2つの異なる年からデータを取得する
CREATE TABLE IF NOT EXISTS `inventory_data` (
inventory_id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
store_id smallint unsigned NOT NULL,
inventory_year smallint unsigned NOT NULL,
shortage_dollars decimal(10,2) unsigned NOT NULL
)
engine=INNODB;
すべてのストアが(いくつかの非関連のフィールドは削除)この表の地区に割り当てられている:私は、不足金額を取得することができるようにしたい
CREATE TABLE IF NOT EXISTS `stores` (
store_id smallint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
district_id smallint unsigned not null
)
engine=INNODB;
所与の地区内のすべての店舗で2年間インベントリが完了すると、各店舗のインベントリデータはinventory_dataテーブルにのみ追加されるため、ある地区内のすべての店舗がすべて常に表示されるわけではありません。
このクエリは、指定した年の指定された地区内の全店舗の在庫データを返すように動作します(例:2012年の1区にある店舗):
SELECT stores.store_id, inventory_data.shortage_dollars
FROM stores
LEFT JOIN inventory_data ON (stores.store_id = inventory_data.store_id)
AND inventory_data.inventory_year = 2012
WHERE stores.district_id = 1
しかし、私はデータを取得できるようにする必要があります2年間の地区内の店舗のため、データはこれに近いものをそのように見えること:
store_id | yr2011 | yr2012
ありがとう!最初のバージョンは完全に完璧です。正確に私が必要としていたもの。よくやった。 – user1091949