sql - SQL - 在 WITH 语句之后使用 IF 语句
问题描述
我正在制作一个 SQl 报告,它使用 With 语句,并带有很多内部连接和组等。
请参阅下面的工作代码。下面的代码确实有效。
问题是,这个表有时会有输出数据(作为一个表),有时不是基于订单量。当没有找到数据时,我想显示我自己的特定信息,说“不需要购买托盘”
我想在原始队列之后放置一个 IF 语句,例如:
IF NewTable is not NULL
select
WorkOrderNumber,
DispatchDayID,
sum (NewTable.Qty)as Qty,
A,
B,
PalletDesign
from NewTable
group by WorkOrderNumber,DispatchDayID,A,B,PalletDesign
ELSE
select 'dont need to buy pallet'
END
但是,如果我包含上面的代码,队列不会运行,有人可以告诉我如何将 IF 语句放在 With as 和 Select 之后。
(不是 SQL 专家,如果我的问题不完全合理,请见谅)
-------------工作代码------------
with NewTable as (
Select
d.WorkOrderNumber AS WorkOrderNumber,
d.DispatchDayID AS DispatchDayID,
......
.....
....
from Company_OrderDispatchPallet a
inner join Company_orderDispatchPalletitem b
on a.orderDispatchPalletID = b.orderDispatchPalletID
inner join ......
on ......
inner join ......
on ......
where
g.PurchasedDate >= dATEADD(hh, +22, cast (CAST(GETDATE()-1 AS DATE) as datetime))
and g.PurchasedDate <= dATEADD(hh, +22, cast (CAST(GETDATE()-0 AS DATE) as datetime))
group by
a.OrderDispatchid, b.orderItemGuid,c.OrderDispatchID,d.DispatchItemId,
...... )
-- 新表结束
select
WorkOrderNumber,
DispatchDayID,
sum (NewTable.Qty)as Qty,
A,
B,
PalletDesign
from NewTable
group by WorkOrderNumber,DispatchDayID,A,B,PalletDesign
解决方案
SQL 不是一种执行类似逻辑操作的语言,因为它是声明性的而不是过程性的。
但是,一些数据库系统将提供过程支持,并且可能具有如下语法:
BEGIN
DECLARE @check INT;
SELECT
@check = COUNT(1)
FROM
NewTable;
SELECT @check;
IF @check >= 1
BEGIN
select
WorkOrderNumber,
DispatchDayID,
sum (NewTable.Qty)as Qty,
A,
B,
PalletDesign
from NewTable
group by WorkOrderNumber,DispatchDayID,A,B,PalletDesign
END
ELSE
BEGIN
PRINT 'dont need to buy pallet';
END
END
推荐阅读
- mongodb - 使用 Mongodb 聚合框架的嵌套聚合子分组结果
- android - Android Navigation JetPack + BottomNavigationView + 嵌套片段
- python - 如何在核心处理程序中获取信息
- scala - 在 Spark 中制作分布式矩阵时,所有这些行从何而来?
- android - 跨 iOS 和 Android 使用 Google Firestore(加上 Google Stack)制作 Unity 手机游戏
- twitter - 什么 Twitter API 返回状态及其回复?
- postgresql - Postgres - 将数据从一个表批量传输到另一个表
- scala - 如何与 Slick 建立 Redshift 连接?
- .net - 用于 Swift 和 .Net Web 应用程序的业务类
- ios - 动态改变 UITableViewCell 高度 - Swift 4