0

次の SQL ステートメントは、末尾のサブクエリで使用するユーザー変数 @id を設定します。私の問題は、@id変数が結果セットの最初のitems.idにのみ設定されることです-「行ごと」ではありません-サブクエリからの結果は、メイン選択のすべての行で同じです。各行の @id 変数をリセットする方法があるかどうかは誰にもわかりませんか??

    select
         items.id
        ,items.title
        ,@id := items.id
        ,(
            select
                group_concat(x.y)
            from
                (
                    select
                        group_concat(ledger.stockcode) as y
                    from
                        ledger
                    where
                        @id = ledger.itemid
                    group by
                         ledger.stockcode
                    having
                        sum(ledger.stockqty) > 0
                ) as x
            ) as extras
    from
        items
    where
        items.id = 196
4

1 に答える 1

0

このクエリを試してください

select
     a.id
    ,a.title
    ,b.y as extras
from
    items a
inner join
    (select
       group_concat(ledger.stockcode) as y
    from
       ledger
    where 
       ledger.itemid = 196
    group by
       ledger.stockcode
    having
       sum(ledger.stockqty) > 0) b
on
    a.id = 196 AND a.id = b.itemid
于 2013-04-05T05:27:32.017 に答える