SQL サブクエリ?
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
仕入明細データに
商品コード
仕入日 を持っています。
定価マスタは
商品コード
定価日 で主キーを構成し、1商品コードにつき複数レコード存在します。
仕入明細データの仕入日未満で、かつ最新の
定価日の定価を持ってくるSQL文の書き方を
どなたかお教え頂けないでしょうか。
メインクエリーの値で、サブクエリーのサブクエリー?
の絞り込みは出来ないとか。
目的は、仕入明細に記録された定価と
商品マスタの定価の点検をしたいとかそんな感じです。
普通のMagicの作りであれば仕入明細データを
メインソースにして、定価マスタを降順リンクして
WFへ書き出すといった作りになると思います。
商品コード
仕入日 を持っています。
定価マスタは
商品コード
定価日 で主キーを構成し、1商品コードにつき複数レコード存在します。
仕入明細データの仕入日未満で、かつ最新の
定価日の定価を持ってくるSQL文の書き方を
どなたかお教え頂けないでしょうか。
メインクエリーの値で、サブクエリーのサブクエリー?
の絞り込みは出来ないとか。
目的は、仕入明細に記録された定価と
商品マスタの定価の点検をしたいとかそんな感じです。
普通のMagicの作りであれば仕入明細データを
メインソースにして、定価マスタを降順リンクして
WFへ書き出すといった作りになると思います。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
普通のMagicの作りで発行されるSQL文をログで見て参考にしたいと思います。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
普通のMagicの作りで発行されるSQL文ですが
メインソースに対して、定価マスタを日付で降順リンク
するので外部リンクは出来ず、照会リンクとなる訳ですが
作られたSQL文もJOINした1本とはなりませんでした。
メインソースに対して、定価マスタを日付で降順リンク
するので外部リンクは出来ず、照会リンクとなる訳ですが
作られたSQL文もJOINした1本とはなりませんでした。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
joinして降順で読んで
1件目をfechする作りでも良いと思いますが
言語系での場合 その方がソースコード読んでもわかりやすいので
私ならそうします。
でわ〜でわ〜
joinして降順で読んで
1件目をfechする作りでも良いと思いますが
言語系での場合 その方がソースコード読んでもわかりやすいので
私ならそうします。
でわ〜でわ〜
投票数:0
平均点:0.00
fjksudou
投稿数: 180
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん
こんにちは
SELECT A.商品コード,A.仕入日,A.定価日,B.定価
FROM (
SELECT 仕入明細データ.商品コード,仕入明細データ.仕入日
,MAX(定価マスタ.定価日) AS 定価日
FROM 仕入明細データ
LEFT OUTER JOIN 定価マスタ
ON 仕入明細データ.商品コード=定価マスタ.商品コード
AND 仕入明細データ.仕入日>定価マスタ.定価日
GROUP BY 仕入明細データ.商品コード,仕入明細データ.仕入日
) AS A
LEFT OUTER JOIN 定価マスタ AS B
ON A.商品コード=B.商品コード
AND A.定価日=B.定価日
と作成してみました。
もっと高速なSQL文があるかもしれません。
この程度のSQL文しかできませんので、
私の場合はMAGICのリンクを使用しています。
2回仕入明細データを回しているようで、処理が遅い気がします。
こんにちは
SELECT A.商品コード,A.仕入日,A.定価日,B.定価
FROM (
SELECT 仕入明細データ.商品コード,仕入明細データ.仕入日
,MAX(定価マスタ.定価日) AS 定価日
FROM 仕入明細データ
LEFT OUTER JOIN 定価マスタ
ON 仕入明細データ.商品コード=定価マスタ.商品コード
AND 仕入明細データ.仕入日>定価マスタ.定価日
GROUP BY 仕入明細データ.商品コード,仕入明細データ.仕入日
) AS A
LEFT OUTER JOIN 定価マスタ AS B
ON A.商品コード=B.商品コード
AND A.定価日=B.定価日
と作成してみました。
もっと高速なSQL文があるかもしれません。
この程度のSQL文しかできませんので、
私の場合はMAGICのリンクを使用しています。
2回仕入明細データを回しているようで、処理が遅い気がします。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
fjksudou様 こんにちは。レス大変感謝申し上げます。
・LEFT JOINの後を(SELECT ・・・と記述してばっかりなので
(SELECTを省略するのにも私も慣れたいです。
・FROMの中がSELECT文というのにも不慣れです。
定価マスタですが
商品CD=A 2019/04/01 1000円
商品CD=A 2019/09/01 1100円
とあり、仕入日が2019/12/16の時は直近の定価
1100円の方を取ってきて欲しいのですが
私が作った分だと1000円の定価を取得してしまいました。
教えて頂いた分で試してみたいと思います。
ありがとうございました。
・LEFT JOINの後を(SELECT ・・・と記述してばっかりなので
(SELECTを省略するのにも私も慣れたいです。
・FROMの中がSELECT文というのにも不慣れです。
定価マスタですが
商品CD=A 2019/04/01 1000円
商品CD=A 2019/09/01 1100円
とあり、仕入日が2019/12/16の時は直近の定価
1100円の方を取ってきて欲しいのですが
私が作った分だと1000円の定価を取得してしまいました。
教えて頂いた分で試してみたいと思います。
ありがとうございました。
投票数:0
平均点:0.00