ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQL サブクエリ?

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2019-12-15 18:00
nkmt  長老   投稿数: 1668
仕入明細データに
 商品コード
 仕入日 を持っています。

定価マスタは
 商品コード
 定価日 で主キーを構成し、1商品コードにつき複数レコード存在します。

仕入明細データの仕入日未満で、かつ最新の
 定価日の定価を持ってくるSQL文の書き方を
 どなたかお教え頂けないでしょうか。

メインクエリーの値で、サブクエリーのサブクエリー?
 の絞り込みは出来ないとか。

目的は、仕入明細に記録された定価と
商品マスタの定価の点検をしたいとかそんな感じです。

普通のMagicの作りであれば仕入明細データを
メインソースにして、定価マスタを降順リンクして
WFへ書き出すといった作りになると思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-12-15 20:06
nkmt  長老   投稿数: 1668
普通のMagicの作りで発行されるSQL文をログで見て参考にしたいと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2019-12-15 20:40
nkmt  長老   投稿数: 1668
普通のMagicの作りで発行されるSQL文ですが
メインソースに対して、定価マスタを日付で降順リンク
するので外部リンクは出来ず、照会リンクとなる訳ですが
作られたSQL文もJOINした1本とはなりませんでした。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-12-16 8:50
fjksudou  長老   投稿数: 180
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回仕入明細データを回しているようで、処理が遅い気がします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-12-16 9:42
pu_mahalo  長老 居住地: 大阪  投稿数: 775
こんにちは Puです

joinして降順で読んで
1件目をfechする作りでも良いと思いますが

言語系での場合 その方がソースコード読んでもわかりやすいので
私ならそうします。
でわ〜でわ〜
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-12-16 9:44
nkmt  長老   投稿数: 1668
fjksudou様 こんにちは。レス大変感謝申し上げます。

・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

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約