CREATE TABLE SO
([SOKey] int, [TranNo] varchar(20))
;
INSERT INTO SO
([SOKey], [TranNo])
VALUES
(150, '00000123')
;
CREATE TABLE SOL
([SOLineKey] int, [SOLineNo] int, [Qty] int, [ItemKey] int)
;
INSERT INTO SOL
([SOLineKey], [SOLineNo], [Qty], [ItemKey])
VALUES
(250, 1, 5, 22),
(251, 2, 6, 23),
(252, 3, 7, 24)
;
CREATE TABLE SOLX
([SOLineKey] int, [Width1] int, [Width2] int)
;
INSERT INTO SOLX
([SOLineKey], [Width1], [Width2])
VALUES
(250, 12, 12),
(251, 12, 12),
(252, 12, 12)
;
CREATE TABLE SOLC
([SOLineKey] int, [ComplItemQtym] int, [ComplItemKey] int)
;
INSERT INTO SOLC
([SOLineKey], [ComplItemQtym], [ComplItemKey])
VALUES
(250, 10, 26),
(250, 11, 27),
(251, 12, 25),
(251, 13, 26),
(251, 14, 27),
(251, 15, 28),
(252, 16, 23),
(252, 17, 25),
(252, 18, 26)
;
CREATE TABLE ITEM
([ItemKey] int, [ItemID] varchar(5))
;
INSERT INTO ITEM
([ItemKey], [ItemID])
VALUES
(22, 'ABC22'),
(23, 'ABC23'),
(24, 'ABC24'),
(25, 'ABC25'),
(26, 'ABC26'),
(27, 'ABC27'),
(28, 'ABC28')
;
SELECT
so.TranNo,
sol.SOLineNO,
item.itemID,
solx.width,
solx.width1,
sol.Qty,
0 AS CompItemQty,
'' AS CompItemID
FROM so INNER JOIN sol on so.SOKey = sol.SOKey
INNER JOIN item ON sol.ItemKey = item.itemKey
INNER JOIN solx ON sol.solinekey = solx.solinekey
UNION ALL
SELECT
so.TranNo,
sol.SOLineNO,
item.itemID,
NULL AS width,
NULL AS width1,
NULL AS Qty,
solc.CompItemQty,
ic.itemID AS CompItemID
FROM so INNER JOIN sol on so.SOKey = sol.SOKey
INNER JOIN item ON sol.ItemKey = item.itemKey
INNER JOIN solc ON sol.solinekey = solc.solinekey
INNER JOIN item ic ON solc.CompItemKey = ic.itemKey
ORDER BY 1, 2, 7, 8
are there really 2 [width] columns in the same table? (solx)
any chance of getting sample data in a re-usable format?
I did the typing - not my favorite pastime
TRANNO SOLINENO ITEMID WIDTH WIDTH1 QTY COMPITEMQTY COMPITEMID
00000123 1 ABC22 12 12 5 0
00000123 1 ABC22 10 ABC26
00000123 1 ABC22 11 ABC27
00000123 2 ABC23 12 12 6 0
00000123 2 ABC23 12 ABC25
00000123 2 ABC23 13 ABC26
00000123 2 ABC23 14 ABC27
00000123 2 ABC23 15 ABC28
00000123 3 ABC24 12 12 7 0
00000123 3 ABC24 16 ABC23
00000123 3 ABC24 17 ABC25
00000123 3 ABC24 18 ABC26
CREATE VIEW bizarro
AS
SELECT
so.TranNo
, sol.SOLineKey
, item.ItemID
, solx.Width1
, solx.Width2
, sol.Qty
, null AS ComplItemQtym
, null AS ComplItemID
FROM SO
INNER JOIN SOL ON so.SOKey = sol.SOKey
INNER JOIN SOLX ON sol.SOLineKey = solx.SOLineKey
INNER JOIN ITEM ON sol.ItemKey = item.ItemKey
UNION ALL
SELECT
so.TranNo
, sol.SOLineKey
, i2.ItemID
, null AS Width1
, null AS Width2
, null AS Qty
, solc.ComplItemQtym
, i2.ItemID AS ComplItemID
FROM SO
INNER JOIN SOL ON so.SOKey = sol.SOKey
INNER JOIN SOLC ON sol.SOLineKey = solc.SOLineKey
INNER JOIN ITEM AS I2 ON solc.ComplItemKey = i2.ItemKey
;
any chance of getting sample data in a re-usable format?