Sql If语句语法错误
我正在尝试创建一个If语句,如果商品超过100K或公司名为CGELENA或CGFEDUN,则该语句将查找并列出以下值,如果没有,则检查商品类型是否列在下面Sql If语句语法错误,sql,syntax,Sql,Syntax,我正在尝试创建一个If语句,如果商品超过100K或公司名为CGELENA或CGFEDUN,则该语句将查找并列出以下值,如果没有,则检查商品类型是否列在下面 If (ord_miscqty >='100000' OR m.cmp_id in('CGELENA','CGFEDUN') Begin Select ord_number ,ord_status ,m.cmp_name ,Ord_startdate
If (ord_miscqty >='100000' OR m.cmp_id in('CGELENA','CGFEDUN')
Begin
Select
ord_number
,ord_status
,m.cmp_name
,Ord_startdate
,ord_miscqty AS [FreightValue]
,c.car_ins_cargolimits AS [CargoAmount]
,o.ord_carrier AS [Carrier]
,l.NAME AS [LSM2]
,c.car_iccnum AS [MCNumber]
,o.ord_description AS [Commodity]
,f.cmd_code [Commody Code]
,(
SELECT t.ta_quantity
FROM trlaccessories AS t
WHERE o.ord_carrier = t.ta_trailer
AND t.ta_type = 'POWER'
) AS [PowerUnits]
,(
SELECT n.not_text
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [Note]
,(
SELECT n.last_updatedatetime
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [NoteDate]
,(
SELECT q.caq_type
FROM carrierqualifications AS q
WHERE o.ord_carrier = q.caq_id
AND q.caq_type = 'RES'
) AS [Restriction]
,(
SELECT n.not_expires
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [NoteExp]
FROM orderheader AS o
INNER JOIN carrier AS c ON o.ord_carrier = c.car_id
INNER JOIN company AS m ON o.ord_billto = m.cmp_id
INNER JOIN labelfile AS l ON o.ord_revtype3 = l.abbr
join stops as s on s.ord_hdrnumber = o.ord_hdrnumber
join FREIGHTDETAIL as f on f.stp_number = s.stp_number
Where datediff(hour, getdate(), ord_startdate) > 0
AND ord_status IN (
'PLN'
,'DSP'
)
AND l.labeldefinition = 'RevType3'
End
Else If
f.cmd_code in ('COPSUL',
'HAZMOLY',
'COPANO',
'COPCAN',
'COPING',
'COPPAN',
'COPPER',
'COPROD',
'COPSTSHT',
'COPSULNH',
'APPLINCS',
'LIQUOR')
Begin
Select
ord_number
,ord_status
,m.cmp_name
,Ord_startdate
,ord_miscqty AS [FreightValue]
,c.car_ins_cargolimits AS [CargoAmount]
,o.ord_carrier AS [Carrier]
,l.NAME AS [LSM2]
,c.car_iccnum AS [MCNumber]
,o.ord_description AS [Commodity]
,f.cmd_code [Commody Code]
,(
SELECT t.ta_quantity
FROM trlaccessories AS t
WHERE o.ord_carrier = t.ta_trailer
AND t.ta_type = 'POWER'
) AS [PowerUnits]
,(
SELECT n.not_text
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [Note]
,(
SELECT n.last_updatedatetime
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [NoteDate]
,(
SELECT q.caq_type
FROM carrierqualifications AS q
WHERE o.ord_carrier = q.caq_id
AND q.caq_type = 'RES'
) AS [Restriction]
,(
SELECT n.not_expires
FROM notes AS n
WHERE n.nre_tablekey = o.ord_carrier
AND n.not_type = 'I'
) AS [NoteExp]
FROM orderheader AS o
INNER JOIN carrier AS c ON o.ord_carrier = c.car_id
INNER JOIN company AS m ON o.ord_billto = m.cmp_id
INNER JOIN labelfile AS l ON o.ord_revtype3 = l.abbr
join stops as s on s.ord_hdrnumber = o.ord_hdrnumber
join FREIGHTDETAIL as f on f.stp_number = s.stp_number
Where datediff(hour, getdate(), ord_startdate) > 0
AND ord_status IN (
'PLN'
,'DSP'
)
AND l.labeldefinition = 'RevType3'
End
在else语句中,必须使用选择
Else If
Select f.cmd_code in ('COPSUL',...
....
缺少
)
第1行中的Start您使用什么RDBMS?其中一些可能不支持常规查询上下文中的IF/ELSE
控制结构,而只允许在存储过程/函数中使用它们。[]
括号表示可能是MS SQL Server或Access。哦,我的上帝,你写了这样一个怪物,却找不到缺少的括号??