それぞれのテーブルで4つの異なる列を選択しています。 ProductID、ProductDesc、TransactionDate、およびTransactionPrice。レコードが見つからないときにデフォルト値を出力する
レコードが存在する例として、以下のクエリを使用して:
SELECT transactionProducts.productID, products.productDesc, transactionDate, transactionProducts.price
FROM transactionProducts INNER JOIN transactions ON transactionProducts.transactionID = transactions.transactionID
INNER JOIN products on products.productID=transactionProducts.productID
WHERE (transactionProducts.productID='1011021' AND transactions.transactionDate='2017-01-07')
GROUP BY transactionProducts.productID, products.productDesc, transactionDate, transactionProducts.price
ORDER BY transactionDate
ProductID | Product Desc | TransactionDate | TransactionPrice
1011021 | SD DOG | 2017-01-07 | $15
私の目標は、さえのproductID(例えば1011021)場合は、レコードを返すことですが、次のように出力されていますtransactionDateに関連付けられていません。
ProductID | Product Desc | TransactionDate | TransactionPrice
| | |
私は考えまだ出力のproductID productDescを探しています出力:私はなるだろう現在の出力は(レコードが見つからない)だろう
SELECT transactionProducts.productID, products.productDesc, transactionDate, transactionProducts.price
FROM transactionProducts INNER JOIN transactions ON transactionProducts.transactionID = transactions.transactionID
INNER JOIN products on products.productID=transactionProducts.productID
WHERE (transactionProducts.productID='1011021' AND transactions.transactionDate='2017-01-18')
GROUP BY transactionProducts.productID, products.productDesc, transactionDate,
ORDER BY transactionDate
存在doesntの日付については、以下のクエリのクエリそして、クエリで指定されたが、私はグラムのトランザクション場合は0に設定するtransactionPriceを強制したい0
ProductID | Product Desc | TransactionDate | TransactionPrice
1011021 | SD DOG | 2017-01-18 | 0
としてtransactionPriceを返したtransactionDateこと指定されたTransactionDate(2017-01-08)でProductID(1011021)が発生しなかった場合、これを達成する方法として他に何か提案がありますか?
取引がない場合なぜ取引日があるのですか?ある範囲内のすべての日付に対して0の金額の取引を強制しようとしている場合は、それをその質問に記載する必要があります。 – scsimon
はい、それは私がやろうとしていることです、私は今質問でそれを述べています、あなたは何か提案がありますか? – MJJLAM
関数を使用して、範囲内の日付のテンポラリテーブルを作成し、それにフル参加します。これには多くの例があります。カレンダーテーブルを参照してください。誰かがおそらくあなたに解決策を与えるだろう。乾杯! – scsimon