【问题标题】:Add column to SELECT IF Row Count > 1将列添加到 SELECT IF Row Count > 1
【发布时间】:2017-12-06 19:40:38
【问题描述】:

欢迎任何建议或想法,也许无法完成......这是我的主要选择:

SELECT * From(
SELECT MODATA.CITEM, MODATA.QTREQ, MODATA.UNMSR, MODATA.CDESC, MODATA.USRSQ AS SQ, MODATA.OPRWU, SLQNTY.LLOCN, SLQNTY.LQNTY, ROW_NUMBER()     OVER (PARTITION BY CITEM ORDER By CITEM) as L, MODATA.FLSTK, 
MODATA.ISQTY, (QTREQ - ISQTY) as finalQty, SLQNTY.HOUSE, MOMAST.FITWH
FROM MODATA
LEFT OUTER JOIN SLQNTY ON SLQNTY.ITNBR = MODATA.CITEM
LEFT OUTER JOIN MOMAST ON MOMAST.ORDNO = MODATA.ORDNO
WHERE MODATA.ORDNO = 'M889360'  AND FLSTK != 'U' AND FLSTK != 'C' AND (SLQNTY.HOUSE=MOMAST.FITWH OR HOUSE IS NULL)) AS X

这会拉出所有项目,如果一个项目超过 1 个,它会计算行数,然后我这样做只是为了给我带来列表中的第一个项目

WHERE X.L = 1
ORDER BY X.SQ

我在执行 WHERE X.L = 1 之前的数据如下所示:

我的问题是...我想在右侧有另一列显示 X 或 1 如果项目有多行...然后我可以按此排序以放置多个位置项目在顶部。关于是否可以完成的任何想法我都在画空白。理想情况下要按 X 排序,然后我会执行 X.L = 1 只拉项目一次,但仍然有一个触发器来显示该项目上有多个位置。

【问题讨论】:

    标签: c# sql gridview


    【解决方案1】:

    搞定了!

    SELECT * From(
    SELECT MODATA.CITEM, MODATA.QTREQ, MODATA.UNMSR, MODATA.CDESC, MODATA.USRSQ AS SQ, MODATA.OPRWU, SLQNTY.LLOCN, SLQNTY.LQNTY, ROW_NUMBER() OVER (PARTITION BY CITEM ORDER By CITEM) as L, MODATA.FLSTK, 
    MODATA.ISQTY, (QTREQ - ISQTY) as finalQty, SLQNTY.HOUSE, MOMAST.FITWH, (SELECT COUNT(*) FROM SLQNTY WHERE SLQNTY.ITNBR = MODATA.CITEM AND SLQNTY.LQNTY != 0  AND (SLQNTY.HOUSE=MOMAST.FITWH OR HOUSE IS NULL)) AS T
    FROM MODATA
    LEFT OUTER JOIN SLQNTY ON SLQNTY.ITNBR = MODATA.CITEM
    LEFT OUTER JOIN MOMAST ON MOMAST.ORDNO = MODATA.ORDNO
    WHERE MODATA.ORDNO = 'M838860'  AND FLSTK != 'U' AND FLSTK != 'C' AND (SLQNTY.HOUSE=MOMAST.FITWH OR HOUSE IS NULL)) AS X
    WHERE X.L = 1
    ORDER BY X.T DESC
    

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2012-11-13
      • 1970-01-01
      • 2016-05-21
      • 2021-03-25
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 2015-06-01
      相关资源
      最近更新 更多