sql - 多个条件的 SQL 查询语句
问题描述
我需要Dest_Cities
在以下语句中添加更多内容,但我不断收到语法错误。
我精通 VBA,但对 SQL 有点陌生。
#(lf)-- a.carrier#(lf)from trident.dbo.vwZCONTK **a#(lf)where a.Dest_City = 'E27'**#(lf)and a.carrier <> 'Y4' #(lf))"]),
解决方案
我认为这代表了您的 VB 格式帖子中的正确 SQL(没关系,您将学习发布以提高可读性)。
如果您在查询中特别有所有那些“#(lf)”换行表示,那可能会窒息它......否则它可能是 <> (不等于)。
此外,作为查询和构建结果列名时的旁注,在列名中嵌入空格通常更像是 PITA。保持它们 CamelCaseFormatted。它们仍然是可读的,但只有一个列名,并且在其余代码中不需要[方括号]。你总是可以让你的输出格式化带有适当空格的标题。
因此,从 [Actual Delivery] 的示例输出列中,更改为 ActualDelivery,对于 DateEmpty、TakenOutDate、DischargePortName 等类似。
现在,没有#(lf) 引用的查询的可读性更具可读性。
select distinct
a.xblnr as Container,
a.MBL_ASN as MBN,
format(a.actual_del_date, 'd','en-us') as [Actual Delivery],
format(a.Date_Empty, 'd','en-us') as [Date Empty],
format(a.takenout_date, 'd','en-us') as [Taken Out Date],
a.port_dischg as [Discharge Port Name],
a.Dest_city as [Destination City Code],
a.Truck_com as [Trucking Company],
case when a.Carrier = 'Z2' then 'APL'
when a.Carrier = 'HS' then 'Hamburg-Sud'
when a.Carrier = 'Z6' then 'Hapag'
when a.Carrier = 'Z8' then 'Maersk'
when a.Carrier = 'MS' then 'MSC'
when a.Carrier = 'OO' then 'OOCL'
when a.Carrier = 'ZM' then 'ZIM'
when a.Carrier = 'ON' then 'ONE'
when a.Carrier = 'Z4' then 'Evergreen'
when a.carrier = 'Y4' then 'AIR'
else 'Unknown' end as [Carrier Name]
from
trident.dbo.vwZCONTK a
where
a.Dest_City = 'E27'
and NOT a.carrier = 'Y4'
至于你的#"Filtered Rows" 和#"Changed Type",你似乎从 VB 端的结果集进一步剥离(但我不是 VB 人)。让您的查询工作和结果“源”记录集,然后工作您的表过滤行。