Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-基于日期和批号选择列_Sql_Sql Server_Select_Case - Fatal编程技术网

SQL-基于日期和批号选择列

SQL-基于日期和批号选择列,sql,sql-server,select,case,Sql,Sql Server,Select,Case,我很接近,现在我只是有这个代码的问题。它说我需要添加某个地方的存在?谢谢你的帮助 SELECT (SELECT UA#SacmiDataLog_2013.NS_Inlet_T , UA#SacmiDataLog_2013.NSFlowRate , UA#SacmiDataLog_2013.NSHeaterTank , UA#SacmiDataLog_2013.NS_Outlet_T

我很接近,现在我只是有这个代码的问题。它说我需要添加某个地方的存在?谢谢你的帮助

SELECT (SELECT UA#SacmiDataLog_2013.NS_Inlet_T
                  , UA#SacmiDataLog_2013.NSFlowRate
                  , UA#SacmiDataLog_2013.NSHeaterTank
                  , UA#SacmiDataLog_2013.NS_Outlet_T
                  , UA#SacmiDataLog_2013.NSTrPrAvg
                  , UA#SacmiDataLog_2013.NSPump1
                  , UA#SacmiDataLog_2013.NSPump2
                  , UA#SacmiDataLog_2013.NS_Visc
                  , UA#SacmiDataLog_2013.NS_Burner_B
             WHERE
               UA#SacmiDataLog_2013.NSHeatBatch = 'G23169') AS expr1
          , (SELECT UA#SacmiDataLog_2013.OS_Inlet_T
                  , UA#SacmiDataLog_2013.OS_Outlet_T
                  , UA#SacmiDataLog_2013.OS_Burner_B
                  , UA#SacmiDataLog_2013.OSViscosity
                  , UA#SacmiDataLog_2013.OSHeaterTank
                  , UA#SacmiDataLog_2013.OSPump1
                  , UA#SacmiDataLog_2013.OSPump2
                  , UA#SacmiDataLog_2013.OSTrPrAvg
             WHERE
               UA#SacmiDataLog_2013.OSHeatBatch = 'G23169') AS expr2

dbo.UASacmiDataLog_2013

您是否尝试过这种方式:

where (NSHeatBatch= 'G22166' or OSHeatBatch= 'G22166') 
and RunDate between '1/14/13' and '1/16/13'

很多时候,大括号对于定义查询非常重要。让我们试着那样做

那么,像这样做,我希望这会有帮助:

SELECT  * FROM( 
    SELECT NSField1 as DataColumnNameSame1,NSField2 as DataColumnNameSame2 FROM SAMETABLE AS NS WHERE NS.BATCH='111111' AND RUNDATE BETWEEN '1/14/13' AND '1/16/13' 

UNION ALL

    SELECT OSField1 as DataColumnNameSame1,OSField2 as DataColumnNameSame2 FROM SAMETABLE AS NS WHERE OS.BATCH='111111' AND RUNDATE BETWEEN '1/14/13' AND '1/16/13' 

) AS DATA 
    --WHERE CRITERIA IF NECESSARY IN THIS LEVEL TOO, ONCE AGAIN YOU CAN FILTER FROM HERE ALSO IF NEEDED. HOPE THIS HELPS.

因此,假设G22166是在2013年1月1日在新的一面制造的。在旧的一面,G22166于2013年4月1日再次制造。我有没有办法选择2013年4月1日的日期,只显示旧的数据?我很困惑,因为你说一个批次可以在两侧生产,而你说你只需要从生产批次的一侧选择结果。查看更好的表结构视图会有所帮助。查看您最近的评论,根据您共享的信息,我的回答是肯定的:仅从OSHeatBatch列中选择。WHERE子句查看NS和OS列。但是,我打赌我没有足够的信息来正确回答这个问题。编辑:或者你是说你只想看到最近输入的批次?它不允许我添加图像,所以让我尝试编辑它以使其更易于理解。你当然可以在此处添加图像,但告诉你,如果你现在添加查询以及收到的结果,这将非常有帮助。您只需将其添加为文本编辑器中有一个用于格式化为代码的按钮。然后,您可以更容易地解释您希望看到的结果。这会有所帮助,但也允许显示该行中的所有值。假设用户不知道批次是新的还是旧的,他们只知道它是在两个日期之间完成的。如果同时出现NS和OS值,他们如何生成图形?然后,必须在这两个条件之间放置OR运算符。因此,无论批次匹配还是介于日期之间,两者都将出现。否则,我现在感觉你们已经把你们的桌子分成了新的和旧的两部分。然后,您可以使用两个表上的条件从两个表中进行查询并使用UNION检索数据。我没有创建新表的权限。如果不是,案例陈述是否有效?