使用sqlcmd查询来自单个数据点的一个错误值

使用sqlcmd查询来自单个数据点的一个错误值,sql,sql-server,sqlcmd,Sql,Sql Server,Sqlcmd,使用sqlcmd的SQL查询丢失/显示使用联接问题的一个数据点的默认日期 我正在使用sqlcmd查询一个大型数据库。对于一个datapoint SalesTransaction 33975,日期为空,或者更确切地说是1900年1月1日。使用一个单独的程序,日期通过,所以日期就在那里。其他日期是正确的 SELECT sl.SalesLine, st.Transaction_no, sl.item, CAST(st.invoicedate as DATE) AS InvDate FROM Sales

使用sqlcmd的SQL查询丢失/显示使用联接问题的一个数据点的默认日期

我正在使用sqlcmd查询一个大型数据库。对于一个datapoint SalesTransaction 33975,日期为空,或者更确切地说是1900年1月1日。使用一个单独的程序,日期通过,所以日期就在那里。其他日期是正确的

SELECT sl.SalesLine, st.Transaction_no, sl.item, CAST(st.invoicedate as DATE) AS InvDate
FROM Salestransactions st RIGHT JOIN SalesLines sl 
ON st.transaction_no = sl.transaction_no;
对于编号为3397的交易,发票日期为1900年1月1日
我没有对此事务进行筛选,而其他事务的日期是正确的。我试图保持编码简单,以帮助找出问题。我只是需要一些如何进一步研究的方向。谢谢

除非有人删除或更新数据,否则数据通常不会从表中消失,然后对同一个表的相同查询应该总是产生相同的结果,无论在何处执行。通过告诉我们如何重现您的问题,帮助我们重现您的问题。您发布的小信息无法明确回答您的问题。发布表定义和select*from salestransactions(其中transaction_no=33975)和select*from saleslines(其中transaction_no=33975)的输出。每个客户机可能有不同的事务隔离配置,一个是读取脏的,另一个是提交的。或者,一个客户端将空日期显示为空或显示为默认值1900-01-01。上面的代码就是我使用的代码,非常容易找到问题所在。当我使用sqlcmd运行此查询时,会显示一个特定事务编号3397的默认发票日期。我没有筛选这个号码,但已从其他来源检查了这个号码。使用PowerBISQL查询,我确实获得了发票日期。感谢EzLo对脏配置或提交配置的建议,我将仔细阅读这些建议。我还运行了一个基本查询,没有连接,默认日期再次出现。所有其他交易的日期都是正确的。这似乎是Microsoft的问题。数据通常不会从表中消失,除非有人删除或更新它,然后对同一个表的同一个查询应该总是产生相同的结果,无论在何处执行。通过告诉我们如何重现您的问题,帮助我们重现您的问题。您发布的小信息无法明确回答您的问题。发布表定义和select*from salestransactions(其中transaction_no=33975)和select*from saleslines(其中transaction_no=33975)的输出。每个客户机可能有不同的事务隔离配置,一个是读取脏的,另一个是提交的。或者,一个客户端将空日期显示为空或显示为默认值1900-01-01。上面的代码就是我使用的代码,非常容易找到问题所在。当我使用sqlcmd运行此查询时,会显示一个特定事务编号3397的默认发票日期。我没有筛选这个号码,但已从其他来源检查了这个号码。使用PowerBISQL查询,我确实获得了发票日期。感谢EzLo对脏配置或提交配置的建议,我将仔细阅读这些建议。我还运行了一个基本查询,没有连接,默认日期再次出现。所有其他交易的日期都是正确的。这似乎是微软的问题。