我想知道是否有使用TSQL join语句(或任何其他可用选项)的方法只显示某些值。我会尽力解释我的意思。
我的数据库有名为Job,consign,dechead,decitem的表。作业,委托和dechead每个记录只有一行,但是decitem可以有多个记录都与外键绑定到dechead。我正在编写一个查询,从每个表中提取各种值。除了decitem之外,所有表都可以。从十分之一开始,我需要提取发票金额,从分数开始,我需要抓住净值。如果dechead有多个子decitem表,则返回结果时,它会显示两个表中的所有值。我需要做的只是显示一次dechad值,然后显示所有的decitems值。
e.g。
1 |123 |£2000 |15.00 | 1
2 | - | ------ | 20.00 | 2
3 | - | ------ | 25.00 | 3
第1行显示dechead的值和第一行/来自decitems的Join。第2行和第3行只显示decitem的值。如果我然后将查询导出为excel,则在第2行和第3行的前两个文件中没有重复值
e.g。
1 |123 |£2000 |15.00 | 1
2 |123 |£2000 | 20.00 | 2
3 |123 |£2000 | 25.00 | 3
提前致谢。
答案 0 :(得分:0)
查看您的RDBMS http://msdn.microsoft.com/en-US/library/ms177673%28v=SQL.90%29.aspx
的'分组依据'答案 1 :(得分:0)
这是一个最适合应用程序的任务,但是如果你必须在sql中这样做,试试这个:
SELECT
CASE
WHEN RowVal=1 THEN dt.col1
ELSE NULL
END as Col1
,CASE
WHEN RowVal=1 THEN dt.col2
ELSE NULL
END as Col2
,dt.Col3
,dt.Col4
FROM (SELECT
col1, col2, col3
,ROW_NUMBER OVER(PARTITION BY Col1 ORDER BY Col1,Col4) AS RowVal
FROM ...rest of your big query here...
) dt
ORDER BY dt.col1,dt.Col4