Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 对于所有这些想法,我认为联合是我所寻找的,因为它允许我运行本质上相同的查询,但其中一个子句不同。我唯一的问题是-它是否需要显示这两个语句的所有列,或者我是否只能显示某些列(例如,仅显示联合体第二部分的计划数量),我将继续深入了解这一点,但感谢朝着正确方向推_Sql_Sql Server_Join - Fatal编程技术网

Sql 对于所有这些想法,我认为联合是我所寻找的,因为它允许我运行本质上相同的查询,但其中一个子句不同。我唯一的问题是-它是否需要显示这两个语句的所有列,或者我是否只能显示某些列(例如,仅显示联合体第二部分的计划数量),我将继续深入了解这一点,但感谢朝着正确方向推

Sql 对于所有这些想法,我认为联合是我所寻找的,因为它允许我运行本质上相同的查询,但其中一个子句不同。我唯一的问题是-它是否需要显示这两个语句的所有列,或者我是否只能显示某些列(例如,仅显示联合体第二部分的计划数量),我将继续深入了解这一点,但感谢朝着正确方向推,sql,sql-server,join,Sql,Sql Server,Join,对于所有这些想法,我认为联合是我所寻找的,因为它允许我运行本质上相同的查询,但其中一个子句不同。我唯一的问题是-它是否需要显示这两个语句的所有列,或者我是否只能显示某些列(例如,仅显示联合体第二部分的计划数量),我将继续深入了解这一点,但感谢朝着正确方向推进。@user for unions,列签名需要在连接的查询之间匹配,但不一定必须相同。如果有没有意义的列,可以用NULL或常量值替换。 USE PDX_SAP_USER GO SELECT P.PLANT_CODE,


对于所有这些想法,我认为联合是我所寻找的,因为它允许我运行本质上相同的查询,但其中一个子句不同。我唯一的问题是-它是否需要显示这两个语句的所有列,或者我是否只能显示某些列(例如,仅显示联合体第二部分的计划数量),我将继续深入了解这一点,但感谢朝着正确方向推进。@user for unions,列签名需要在连接的查询之间匹配,但不一定必须相同。如果有没有意义的列,可以用NULL或常量值替换。
USE PDX_SAP_USER 

GO 

SELECT          P.PLANT_CODE,
                P.STOCK_CATEGORY,
                P.MATERIAL,
                P.DISTRIBUTION_VERSION_CODE,
                P.PERIOD_CODE,
                P.REQUIREMENTS_DATE,
                P.PLANNED_QTY AS 'REM PLAN QTY',
                P.VERSION_IND_FLAG,
                P.SIZE_LITERAL,
                P.WITHDRAWN_QUANTITY,
                P.TECHNICAL_INDEX,
                P.PLANNED_QTY + P.WITHDRAWN_QUANTITY AS 'ORIGINAL FCST QTY'
 FROM           VW_PLANNED_REQMNTS_TXT P
 WHERE          P.PLANT_CODE IN ('6040','6041')
 AND            P.STOCK_CATEGORY IN ('A60385000','A60385003')
 AND            P.DISTRIBUTION_VERSION_CODE IN ('00','01','ZU','Z2')
 AND            P.REQUIREMENTS_DATE < GETDATE() - 59
 AND            P.PLANNED_QTY > 0 
 ORDER BY       P.PLANT_CODE,
                P.STOCK_CATEGORY,
                P.MATERIAL,
                P.REQUIREMENTS_DATE,
                P.TECHNICAL_INDEX
SELECT * -- <your final query, use Q1.field and Q2.field>
FROM 
    (SELECT <query1> WHERE <condition1>) Q1
LEFT JOIN
    (SELECT <query2> WHERE <condition2>) Q2
-- add more joins if necessary
ON
    Q1.pk = Q2.pk
SELECT
   PS.ProductShipmnetId
   ,PS.ShipmentDate
   ,PS.ProductQty
   ,CASE 
      WHEN PS.ShipmentDate BETWEEN GETDATE() AND DATEADD(MONTH, 1, GETDATE()) 
         THEN PS.ProductQty 
    END AS ProductQtyThisMonth
FROM
   ProductShipment PS
WHERE
   PS.ShipmentDate > DATEADD(MONTH, -1, GETDATE())
SELECT
   PS.ProductShipmnetId
   ,PS.ShipmentDate
   ,PS.ProductQty AS ProductQtyAncient
   ,NULL AS ProductQtyFuturistic
FROM
   ProductShipment PS
WHERE
   PS.ShipmentDate < DATEADD(YEAR, -1, GETDATE())
UNION ALL
SELECT
   PS.ProductShipmnetId
   ,PS.ShipmentDate
   ,NULL AS ProductQtyAncient
   ,PS.ProductQty AS ProductQtyFuturistic
FROM
   ProductShipment PS
WHERE
   PS.ShipmentDate > DATEADD(YEAR, 1, GETDATE())
SELECT
   PS.ProductId
   ,SUM(CASE WHEN PS.ShipmentDate BETWEEN GETDATE() AND DATEADD(MONTH, 1, GETDATE())
           THEN PS.ProductQty END) AS ProductQtyThisMonth
   ,SUM(CASE WHEN PS.ShipmentDate BETWEEN DATEADD(MONTH, -1, GETDATE()) AND GETDATE()
           THEN PS.ProductQty END) AS ProductQtyLastMonth
FROM
   ProductShipment PS
WHERE
   PS.ShipmentDate BETWEEN DATEADD(MONTH, -1, GETDATE()) 
       AND DATEADD(MONTH, 1, GETDATE())
GROUP BY
   PS.ProductId