こんな表から
こんな出力を得たい
借方・貸方を横に並べて、借方だけある場合は貸方NULL、貸方だけある場合は借方NULL、みたいな感じ。
—
SELECT
借方仕訳.伝票番号
, 借方仕訳.行番号
, 借方仕訳.科目 AS 借方科目
, 借方仕訳.金額 AS 借方金額
, 貸方仕訳.科目 AS 貸方科目
, 貸方仕訳.金額 AS 貸方金額
FROM
(
SELECT
伝票番号
, 行番号
, 科目
, 金額
FROM
仕訳サンプル
WHERE
貸借区分 = ‘借’
) AS 借方仕訳
LEFT OUTER JOIN (
SELECT
伝票番号
, 行番号
, 科目
, 金額
FROM
仕訳サンプル
WHERE
貸借区分 = ‘貸’
) AS 貸方仕訳
ON 借方仕訳.伝票番号 = 貸方仕訳.伝票番号
AND 借方仕訳.行番号 = 貸方仕訳.行番号
UNION ALL
SELECT
伝票番号
, 行番号
, NULL AS 借方科目
, NULL AS 借方金額
, 科目 AS 貸方科目
, 金額 AS 貸方金額
FROM
仕訳サンプル 貸方仕訳
WHERE
貸借区分 = ‘貸’
AND NOT EXISTS (
SELECT
仕訳番号
FROM
仕訳サンプル
WHERE
貸借区分 = ‘借’
AND 伝票番号 = 貸方仕訳.伝票番号
AND 行番号 = 貸方仕訳.行番号
)
ORDER BY
伝票番号
, 行番号
トラックバック URL
http://jqinglong.wp.xdomain.jp/2008/02/03/sql%e3%83%a1%e3%83%a2%e3%80%80%e4%bb%95%e8%a8%b3/trackback/