我在SQL Server 2008中创建了以下查询
SELECT dimUser.EmpFName, dimUser.EmpLName, dimUser.EmpStartDt, dimUser.MgrEmpFullName1,
dimUser.PrimaryJobName, dimUser.PrimaryOrgName, Org.Org_Name
FROM dimUser
INNER JOIN tblEmpOrg AS fact
ON dimUser.ID = fact.EmpOrg_EmpFK
INNER JOIN Org
ON fact.EmpOrg_OrgFK = Org.Org_PK
Run Code Online (Sandbox Code Playgroud)
数据产生多行,因为每个用户有许多不同的组织名称.
Employee Name Manager Name Org_Name
Neil Jones Elizabeth O'Donnell USA
Neil Jones Elizabeth O'Donnell AFG
Neil Jones Elizabeth O'Donnell USA REG A
Run Code Online (Sandbox Code Playgroud)
如何透视此查询以为不同的组织生成多个列.IE Org 1,Org 2,Org 3等
Employee Name Manager Name Org_NAME 1 Org_Name 2 Org_Name 3
Neil Jones Elizabeth O'Donnell USA AFG USA REG A
Run Code Online (Sandbox Code Playgroud) 在以下查询中,t2.stock它有两个值(1和0).我希望1值输出为IN和0值为OUT.问题是我不能CASE在这种类型的查询中使用表达式.有没有办法做到这一点?
use DB1
go
declare @SQL varchar(500),
Set @SQL=' select t1.ID,t1.Name,t2.stock
from table1 t1
inner join table2 t2 on t1.ID = t2.ID'
exec (@SQL)
Run Code Online (Sandbox Code Playgroud) 我的表格如下所示,我需要获得colA和colb的唯一值,其值为colC的第一个值
ID ColA ColB ColC
1 A1 B1 c1
2 A1 B1 c2
3 A2 B2 c3
4 A2 B2 c4
Run Code Online (Sandbox Code Playgroud)
预期结果
A1 B1 C1
A2 B2 c3
Run Code Online (Sandbox Code Playgroud)
对此有任何帮助
使用INSERT语句时,我必须在SQL Server中为数据类型datetime输入什么数据
我在数据库中存储出生日期,一年后我想增加年龄并更新到数据库中.
我有这个查询,我想用作存储过程:
SELECT ISNULL(P.firstname, s.firstname) AS Expr1,ISNULL(P.lastname,
s.lastname) AS Expr2 FROM comment AS C LEFT OUTER JOIN professor AS P ON P.ID =
C.PID LEFT OUTER JOIN student AS s ON s.ID = C.SID
WHERE (C.VID = @VID)
Run Code Online (Sandbox Code Playgroud)
它应该返回Expr1和Expr2的值
我试图宣布输入和输出,但没有运气
请帮忙
编辑:
CREATE PROCEDURE [dbo].[GetDepartmentName]
@ID int,
@fName varchar(50) OUTPUT
@lName varchar(50) OUTPUT
AS
SELECT @fName=COALESCE(p.firstname, s.firstname) @lName=COALESCE(p.lastname,
s.lastname)as
FROM comment c
LEFT JOIN Professor p
ON c.pid = p.id
LEFT JOIN Student s
ON c.sid = s.id
WHERE c.vid = …Run Code Online (Sandbox Code Playgroud) 有什么我想念的吗?
我想要创建的基本上是由空格(或您想要的任何类型)分隔的索引表.我意识到仅仅在int类型数据列上不可能进行全文搜索,因为它将"空格"理解为要在整个目录中编制索引的分隔数据的分隔符.
我确实意识到它确实允许我索引varbinary类型数据,但为什么不仅仅是int用空格分隔的数据,而不是包括要搜索的整数AND文本数据.IE,a
SEARCH * FROM MyTable
WHERE CONTAINS(indexedcolumn, '1189')
Run Code Online (Sandbox Code Playgroud)
使用为表格定义的全文索引/目录,如下所示:
indexedColumn secondDelimitedIntColumn
1189 34 34209 1989 3 5
Run Code Online (Sandbox Code Playgroud)
是不可能的,但是
SEARCH * FROM MyTable
WHERE CONTAINS(uniqueColumn, 'a1189')
Run Code Online (Sandbox Code Playgroud)
WOULD使用包含以下列的表格上的全文索引:
uniqueColumn secondDelimitedIntColumn
a1189 b34 b34209 b1989 b3 b5
Run Code Online (Sandbox Code Playgroud)
所以基本上CONTAINS()在任何具有全文索引的列上执行搜索只有在整数字符串附加了一些文本时才会起作用.
但我的问题是"为什么我不能只使用由空格分隔的整数字符串,这为我节省了必须添加虚拟文本的步骤,以便让SQL Server允许我对索引的整数字符串执行全文搜索?"
提前致谢!
我有CommentRating一个持有外键的表DrinkId.我试图获得每个的平均评分DrinkId,并且我想要显示评分最高的前三名饮料.
commentRating drinkID
9 7
9 4
8 11
8 7
7 4
6 4
6 11
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的SQL,但我不知道如何更改它.
Select TOP(3)(AVG(commentRating)),DISTINCT(drinkID)
FROM Comment order by commentRating desc
Run Code Online (Sandbox Code Playgroud)
我如何平均评分,选择前三个评级的饮料,并在SQL中返回?
我使用此代码在listbox1中插入数据:
if (!IsPostBack)
{
DataTable dt = new DataTable();
string query = "SELECT * FROM [Qualification]";
SqlDataAdapter objda = new SqlDataAdapter(query, conn);
//conn.Open();
objda.Fill(dt);
if (dt.Rows.Count > 0)
{
ListBox1.DataSource = dt;
ListBox1.DataTextField = "QDesc";
ListBox1.DataValueField = "QID";
ListBox1.DataBind();
}
}
Run Code Online (Sandbox Code Playgroud)
这些项目listbox2按钮点击进入
按钮点击代码是:
protected void Button1_Click1(object sender, EventArgs e)
{
string strItemText = "";
string strItemValue = "";
foreach (ListItem listItem in ListBox1.Items)
{
if (listItem.Selected == true)
{
strItemValue += listItem.Text;
}
}
ListBox2.Items.Add(strItemText+""+ strItemValue);
ListBox1.Items.Remove(ListBox1.SelectedItem);
} …Run Code Online (Sandbox Code Playgroud) ID Source Date Desc flgdeladvsourcedetails
22 5 1-Oct-12 a NULL
23 5 1-Nov-12 b NULL
24 5 1-Dec-12 c NULL
25 5 1-Nov-12 d NULL
26 5 1-Dec-12 e NULL
27 5 1-Sep-12 f NULL
28 5 24-Sep-12 g NULL
29 5 7-Aug-12 h NULL
30 5 1-Sep-12 i NULL
31 5 1-Sep-12 j NULL
32 5 15-Sep-12 k NULL
Run Code Online (Sandbox Code Playgroud)
以上日期是合同开始日期.我必须显示合同日期不超过1年的记录.
在此日期的1年后,不应显示记录.
我想查看表的各个日期.不是与当前的date.like例子.如果当前日期是2013年第二季度,则不会看到1个10月12日的数据