【发布时间】:2021-07-06 15:06:45
【问题描述】:
我正在编写我的 SQL 查询,但我无法将它们全部组合起来。我总是得到一个带有查询的列。 PM_Product 表的所有公用表。如何进行合并操作?
我的 SQL 查询:
SELECT pv.PropertyValue as [Author]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.PM_ProductProperty as pp on p.Id=pp.ProductId
JOIN FAZIKI.dbo.PM_PropertyValue as pv on pp.ValueId=pv.Id
WHERE p.RayonId=1 AND pv.PropertyId=69 OR pv.PropertyId=67 OR pv.PropertyId=38
SELECT pv.PropertyValue as [Publisher]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.PM_ProductProperty as pp on p.Id=pp.ProductId
JOIN FAZIKI.dbo.PM_PropertyValue as pv on pp.ValueId=pv.Id
WHERE p.RayonId=1 AND pv.PropertyId=9 OR pv.PropertyId=13 OR pv.PropertyId=60 OR pv.PropertyId=73
SELECT pv.PropertyValue as [Number of Pages]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.PM_ProductProperty as pp on p.Id=pp.ProductId
JOIN FAZIKI.dbo.PM_PropertyValue as pv on pp.ValueId=pv.Id
WHERE p.RayonId=1 AND pv.PropertyId=61 OR pv.PropertyId=31
SELECT dpt.RegionName as [BDR]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.PM_ProductRegion ppr on p.Id=ppr.ProductId
LEFT JOIN FAZIKI.dbo.DF_PMRegionCupboardShelfType tt ON tt.Id = ppr.RegionCupboardShelfTypeId
LEFT JOIN FAZIKI.dbo.DF_PMRegionType dpt ON tt.RegionTypeId = dpt.Id
join FAZIKI.dbo.DF_Warehouse w on w.Id=dpt.WarehouseId
WHERE w.Id=45
SELECT gc.CategoryName as [Category Name]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.PM_ProductCategory as pc on p.Id=pc.ProductId
JOIN FAZIKI.dbo.GN_Category as gc on pc.CategoryId=gc.Id
WHERE p.RayonId=1
SELECT p.SalesPrice as [Sales price], cc.CurrencyCodeName as [Currency]
FROM FAZIKI.dbo.PM_Product as p
JOIN FAZIKI.dbo.DF_GNCurrencyCode cc on p.SalesCurrencyCodeId=cc.Id
WHERE p.RayonId=1
这些是连接 SQL 查询,它们共同使用的表是 PM_Product。如何组合所有这些查询?
【问题讨论】:
-
您不能在括号内使用 SELECT * 然后分配给一个字段。您必须编写一个输出是字段的查询,并且不能将 * 输出放在字段中。输出必须是单个记录。 (SELECT top(1) Number FROM FAZIKI.dbo.PM_ProductProperty as pp JOIN FAZIKI.dbo.PM_PropertyValue AS pv on pp.ValueId=pv.Id WHERE p.Id=pp.ProductId AND pv.PropertyId=61 OR pv.PropertyId= 31) 作为[页数]
-
我现在改了查询,你能再看一下吗?每个查询都返回一列,我需要将它们全部写在一个查询中。你能帮我吗? @گلی
-
如果可能,将您想要的输出示例以照片或 Excel 文件的形式放在这里,以便我可以相应地设置您的查询。
-
smallpdf.com/file#s=a436769f-abf1-4fd8-8643-bdb485f2da99我已经把xml文件上传到这里了@گلی先生
-
注意
AND在OR之前,所以a OR b AND c与a OR (b AND c)相同,但a AND b OR c与(a AND b) OR c相同
标签: sql sql-server tsql