我有两张桌子
销售订单:
和
采购订单:
我正在尝试编写一个查询所有销售订单的查询,其中SOWorkFlowLastCode = 980,SOWorkFlowNextCode = 999,SODateUpdated是今天。
然后查找POItemNumber = SOItemNumber和POCompanyCode = SOCompanyCode和POWorkFlowNextCode!= 999的所有采购订单
以上所有内容对我来说都很容易。
困难的部分是,同一商品编号可以有0到多个采购订单,我需要将所有采购订单放在同一行上。
答案 0 :(得分:0)
SELECT col1, col2, col3, dbo.GetSalesOrders(id) as sales_orders
CREATE FUNCTION GetSalesOrders(@id int)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @result VARCHAR(max)
SET @result = ''
SELECT @result = @result + orderNumber + ', ' FROM salesItems WHERE someID = @id
IF (@result <> '') SET @result = LEFT(@result, LEN(@result) -1)
RETURN @result
END
答案 1 :(得分:0)
我最终使用了两个临时表。 一个用于满足critera的所需销售订单,其中包含一个名为PODetails的附加列。 然后有另一个临时表拉下了符合条件的所有采购订单。
从那里我对销售订单临时表进行了更新,设置PODetails等于采购订单临时表中的STUFF,获取采购订单编号,数量和日期,并将它们转换为临时表项目编号匹配的VARCHAR XML PATH('')
然后我可以选择*从销售订单临时表中获取完整结果。
由于