SQL多条件的位置

问题描述 投票:-1回答:1

我正在尝试使用在何处创建采购订单报告来过滤SQL 2008中的数据。我想说,如果物品价格<$ 2并且我们至少在一个月内售出1次销售然后向我显示他们的数量已经少于12并且如果物品价格<$ 10并且我们至少在三个月内卖出1次销售然后显示我所有物品的数量都少于4件如果物品价格<50美元,我们至少在六个月内售出1件商品,那么告诉我他们的物品数量少于2件物品价格<100美元我们卖1件至少在九个月内出售然后告诉我他们的数量上的所有物品都少于1我是否可以做到这一点。请告知语法。价格是PREC_1,数量是QTY_ON_HND,销售日期是SALD_DAT,销售数量是QTY_SOLD我将非常感谢您的帮助

这是我的查询

`SELECT

' - 选择IM_IN'enter code hereM.ITEM_NO,enter code hereM.DESCR,enter code hereN.QTY_ON_HND,enter code hereCASE enter code hereWHEN N.QTY_ON_HND <0 enter code hereTHEN 0 enter code hereELSE N.QTY_ON_HND enter code hereEND AS QTY_HND,

enter code hereN.LST_COST,enter code hereN.LST_RECV_DAT,

enter code here - 从IM_ITEM中选择enter code hereM.CATEG_COD,enter code hereM.ATTR_COD_1,enter code hereM.ITEM_VEND_NO,enter code hereM.ALT_1_UNIT,enter code hereM.ALT_1_NUMER,enter code hereM.PRC_1,enter code hereM.LST_COST,

enter code here - 从PS_TKT_HIST_LIN中选择

enter code heresum(S.QTY_SOLD)作为QTY_SOLD,enter code herecount(S.BUS_DAT)AS SALS_DATS

enter code hereFROM enter code heredbo.IM_INV N enter code hereINNER JOIN dbo.IM_ITEM M enter code hereON enter code hereN.ITEM_NO = M.ITEM_NO

enter code hereINNER JOIN enter code heredbo.PS_TKT_HIST_LIN S enter code hereON enter code hereN.ITEM_NO = S.ITEM_NO

enter code hereWHERE S.BUS_DAT> getdate() - 270 AND N.QTY_ON_HND <4 AND M.PRC_1 <2

enter code hereGroup通过enter code hereM.ITEM_NO,enter code hereM.DESCR,enter code hereM.ITEM_VEND_NO,enter code hereM.CATEG_COD,enter code hereM.ATTR_COD_1,enter code hereN.QTY_ON_HND,enter code hereN.LST_COST,enter code hereN.LST_RECV_DAT,enter code hereN.LST_SAL_DAT,enter code hereM.ALT_1_UNIT,enter code hereM.ALT_1_NUMER,enter code hereM.PRC_1, enter code hereM.LST_COST,

enter code hereOrder by M.ITEM_NO`

sql sql-server if-statement report where
1个回答
0
投票

您将需要组合两种类型的过滤。

“项目价格<$ 2” - >这需要一个WHERE子句

例如

WHERE [item price] < 2

“我们至少在一个月内出售了1次”

这是一个聚合类型过滤器,因此您需要使用HAVING

HAVING COUNT(*) > 1

加上分组条款

GROUP BY DATEPART(mm, bus_dt)

因为你有很多标准 - 我建议你把它分解并从顶部开始。一旦你有第一组过滤器正常工作,那就继续下去......

尝试将所有不同的标准制表成一个简单的EXCEL表可能是有益的。

例如

为每个OR添加一行,为每个AND条件添加一列。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.