我有一个下面的查询,其中有一个日期过滤器EST_PICK_DATE between '2015-02-01' and '2015-06-01',其中逻辑EST_PICK_DATE应该是从当月和下个月的第一个日期起3个月.当前月份的IE EST_PICK_DATE应该在'2015-02-01'和之间'2015-06-01'.
我需要动态地写下面的查询.
在下面的查询我已硬编码值'2015-02-01'和'2015-06-01',但它应该动态地取得.
怎么做到这一点?我在SSIS包中使用此查询,那么我应该在SQL级别执行还是应该在包中实现此逻辑?如果是,怎么样?
INSERT INTO STG_Open_Orders (Div_Code, net_price, gross_price)
SELECT ord.DIV_CODE AS Div_Code, ord_l.NET_PRICE AS net_price, ord_l.gross_price AS gross_price,
FROM ORD ord inner join ORD_L ord_l ONord.ORD_ID=ord_l.ORD_ID
WHERE ord_l.EST_PICK_DATE BETWEEN '2015-02-01' AND'2015-06-01'
Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个会议纪要网站,其中会议记录对用户而言,我的问题是分钟文本可以非常长,大于sql LONGTEXT数据类型,我如何将这样的长文本存储在一个数据库?并且如果可能的话可以爆炸到阵列?
这是我的代码.
<?php
$subject = $location = $date = $starttime = $endtime = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$subject = $_POST["subject"];
$location = $_POST["location"];
$date = $_POST["date"];
$starttime = $_POST["starttime"];
$endtime = $_POST["endtime"];
$email = $_POST["email"];
$orignal_minutes = $_POST["Oriminutes"];
$edited_minutes = $_POST["Ediminutes"];
}
if($_POST['submit'] != "" )
{
$tablename = "WM_".$subject;
$createTable = "CREATE TABLE `$tablename`(
id INT(6) UNSIGNED AUTO_INCREMENT KEY,
subject VARCHAR(50) NOT NULL, date VARCHAR(20) NOT NULL, location VARCHAR(100) NOT NULL,
starttime VARCHAR(10) NOT NULL, endtime …Run Code Online (Sandbox Code Playgroud) 我想在我的标签示例中使用此输出:2016年4月20日,但我得到4/20/2016:1200:00:AM
我试图修改它,但无法解决这个错误
没有方法的重载需要1个参数导致此代码
lblDate.Text = rdr.GetValue(4).ToString("MMMM d,yyyy");
Run Code Online (Sandbox Code Playgroud)
这是整个代码.
private void GetData()
{
SqlConnection con = new SqlConnection("Data Source = localhost\\SQLEXPRESS;Initial Catalog = MejOnlineManagementDB00;Integrated Security=True;");
con.Open();
SqlCommand cmd = new SqlCommand(@"SELECT orderProdName,orderProdType,orderQuantity,orderStatus,orderDateOrdered
FROM orders2
WHERE orderCustomer='"+DropDownList1.SelectedItem.Value.ToString()+"'",con);
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
lblProdName.Text = rdr.GetValue(0).ToString();
lblProdType.Text = rdr.GetValue(1).ToString();
lblQuantity.Text = rdr.GetValue(2).ToString();
lblStatus.Text = rdr.GetValue(3).ToString();
lblDate.Text = rdr.GetValue(4).ToString("MMMM d,yyyy");
}
}
con.Close();
}
Run Code Online (Sandbox Code Playgroud) 所以我想知道为什么:
SELECT Colunm_Name Column_Name from Table_Name
Run Code Online (Sandbox Code Playgroud)
列名之间没有逗号不会返回语法错误,而是返回仅包含第一列的记录.起初我以为逗号是可选的,但后来我尝试了:
SELECT Colunm_Name Column_Name Column_Name from Table_Name
Run Code Online (Sandbox Code Playgroud)
这会在第三列附近返回语法错误.知道为什么吗?是否有理由为什么你可以放两个列名而不用逗号,即使它省略了第二列?日Thnx!
我有一位同事喜欢使用她所说的“逗号连接”。我最近在现场环境中第一次使用了交叉应用,并注意到它给出了与她的“逗号连接”相同的结果,并且想知道两者是否有什么不同,或者她的方式是否只是速记。下面我有代码创建两个临时表,然后进行交叉应用,将第一个临时表中的所有内容附加到第二个临时表中的所有内容。它还通过她的“逗号连接”来实现这一点。
Select
'a' as a,'b' as b,'c' as c,'d' as d
Into #letter
Create table #name
( name varchar(10))
Insert Into #Name
Values('David'),('Kai'),('Brad'),('Todd'),('Vivian')
Select *
From #Name
Cross apply(Select * from #letter) as A
Select *
From #name
,#letter
Run Code Online (Sandbox Code Playgroud)
那么这些是相同的只是不同的编写方式还是在某些情况下会做不同的事情?哦,我们使用 SQL 2012。
我知道可以用一个值搜索多个列。
我想为 4 个或 5 个值搜索 3-4 列
我想检查我选择的任何列是否具有特定值。
例子
Column 1 | Column 2 | Column 3 | Column 4
| | |
Hello | | | = True
| | |
| Goodbye | | = True
| | Hello | Goodbye = True
| | |
| Hello | | = True
| | |
| | Goodbye | = True
Run Code Online (Sandbox Code Playgroud)
在示例中,我希望 SQL 从所有包含 Hello 或 Goodbye 的行中提取数据,甚至在某些情况下。
有没有办法做我想做的事?
我试图通过正常的sql语句获得分区的总和,但代码将无法正常工作.技术:SQL Server 2014
这是代码:
select
ZABF$,ZUNR$,ZONR$,FPLN$,ZSTR$,right(left(GABS$,3),2) as Region
,SUM(Nettobetrag) AS NettoUmsatz
,SUM(BRUTTOBETRAG) AS BruttoUmsatz
,SUM(Nettobetrag) over (partition by ZABF$,ZUNR$,ZONR$,FPLN$,right(left(GABS$,3),2))
from
ArchivZBEW.PROD.sFCTS_G195
where
NETTOBETRAG<>0 and right(left(GABS$,3),2)<>'65'
and UTYP$ in('K','M','P')
group by
ZABF$,ZUNR$,ZONR$,FPLN$,ZSTR$,right(left(GABS$,3),2)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我尝试获得第一行中所有列的输出,然后是不同的总和.NettoUmsatz和Bruttoumsatz工作得很好,就像预期的那样 - 但现在我需要另一个忽略"ZSTR $"字段的总和.我把这个查询作为CTE的一部分,所以在这个语句中使用它会很好,否则我必须加入表两次并且语句变得很慢.
ErrorCode :(德语):
Die ArchivZBEW.PROD.sFCTS_G195.NETTOBETRAG-Spalte ist in derAuswahllisteungültig,da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.
感谢谷歌翻译:
archiveZBEW.PROD.sFCTS_G195.NETTOBETRAG列在选择列表中无效,因为它不包含在聚合函数中,并且不包含在GROUP BY子句中.
有没有办法计算JSONSQL中a中的节点数。
{
"File":[
{
"ID":1,
"Fragment":"Frag1"
},
{
"ID":2,
"Fragment":"Frag2"
},
{
"ID":3,
"Fragment":"Frag3"
}]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法计算File节点下的子元素数量?
根据上面的例子,答案应该是 3。
我开始研究如何在 MSSQL 2016+ 中处理 JSON
我只是创建了一个具有 ID (int) 和 JSON (nvarchar) 列的表。
以下是我的查询以显示该问题:
第一个查询仅返回关系表结果,很好并且符合预期。
SELECT * FROM WS_Test
-- Results:
1 { "name": "thomas" }
2 { "name": "peter" }
Run Code Online (Sandbox Code Playgroud)
第二个查询仅返回 json 列,因为“JSON”创建了我的 MSSQL。
不太好,因为它将 json 列内容输出为字符串,而不是解析后的 JSON。
SELECT json FROM WS_Test FOR JSON PATH
-- Results:
[{"json":"{ \"name\": \"thomas\" }"},{"json":"{ \"name\": \"peter\" }"}]
Run Code Online (Sandbox Code Playgroud)
第三个查询给了我两个结果行,其中 json 列内容为解析的 JSON,很好。
SELECT JSON_QUERY(json, '$') as json FROM WS_Test
-- Results:
{ "name": "thomas" }
{ "name": "peter" }
Run Code Online (Sandbox Code Playgroud)
第四个查询为我提供了 json 列内容作为一个(!)JSON 对象,完美解析。
SELECT …Run Code Online (Sandbox Code Playgroud) 我.NET在.NET Core控制台应用程序中使用5 。以下代码无法编译:
public class NullableClass<T?>
{
}
Run Code Online (Sandbox Code Playgroud)
错误是:
错误 CS1003 语法错误,“,”预期。
我是否使用任何约束都没有关系。
但这段代码编译:
[return: MaybeNull]
public static T? Find<T>(IEnumerable<T?> sequence, Func<T?, bool> predicate)
{
foreach (var element in sequence) {
if (predicate(element)) return element;
}
return default(T?);
}
Run Code Online (Sandbox Code Playgroud)
当我声明Find<T?>我有同样的错误。
我在这里不明白什么?