我有两个表:headeritems
和lineitems
。
HeaderItems表如下:
Lineitems表
标题项的主键:SrNo,Prefix,TicketNo和Notification 订单项的主键:SubSrNo,Prefix,TicketNo,NotificationNo
如果在标题项表中序列号标志包含'X',那么将根据Required Qty字段在lineItems表中输入,即如果需要qty包含2,那么Lineitems
表中将有2个条目。
现在我想创建一个视图,它给出了如下输出:
Notification Raw material Serial number
-------------------------------------------
34186 68
34186 4110 345345
34186 4110 534557
此序列号字段不在标题项中,仅存在于订单项中。
答案 0 :(得分:0)
SELECT Notification, [Raw material], [Serial number]
FROM (
SELECT Notification, [Raw material], NULL [Serial number], 1 ord
FROM HeaderItems
WHERE Notification = ...
UNION
SELECT Notification, [Raw material], [Serial number], 2 ord
FROM Lineitems
WHERE Notification = ...
)
ORDER BY Notification, ord, [Raw material], [Serial number]
这样做是将两个表(UNION
)组合在一起,同时添加一个额外的列,仅用于排序并确保标题项显示在lineitems上方。
答案 1 :(得分:0)
阅读JOIN的内容。
CREARE VIEW vwNotification
AS
SELECT HI.Notification, HI.Raw material, LI.Serial_number
FROM HeaderItems HI
LEFT JOIN LineItems LI ON HI.Notification=LI.Notification_No
and HI.Raw_material=HL.Raw_material
ORDER BY HI.Notification, HI.Raw material, LI.Serial_number