私は両方のテンポラリテーブルに参加したいが、それは多くの重複データを返すので、テーブルに参加する前に得られる結果は です。ここでSQLの後にデータが返される
私は両方のテーブルに結果を結合した後で、画像
以下のように、それはすべてのデータを倍増しています。
私は両方のテーブルに参加するためにこのSQLを使用します。
` SELECT * FROM(
SELECT DISTINCT t1.hatch_num AS hatch_num_1,t1.delay_code AS delay_code_1,t1.st_time + '-' + t1.ed_time AS time_1
FROM #temp1 t1
)as a
CROSS JOIN
(
SELECT DISTINCT t2.hatch_num AS hatch_num_2,t2.delay_code AS delay_code_2,t2.st_time + '-' + t2.ed_time AS time_2
FROM #temp2 t2
)as b`
内部結合を使用しようとしましたが、同じ結果が返されました。
ここは#temp1テーブルのsqlです。実行すると正しいデータが返されます。
SELECT DISTINCT t1.scn,CONVERT(DATE,t2.opr_st_dt_tm) as work_date,t2.hatch_num,
t3.delay_code,REPLACE(CONVERT(varchar(5),t3.delay_st_dt_tm,108),':','')[time_start],
REPLACE(CONVERT(varchar(5),t3.delay_ed_dt_tm,108),':','')[time_end]
FROM ccostallysheet t1
INNER JOIN ccostsitem t2 ON t2.master_id = t1.id
INNER JOIN ccostsdelayitem t3 ON t3.master_id = t1.id
WHERE t2.hatch_num = 'H1' AND t2.hatch_num IS NOT NULL
GROUP BY t1.scn,t2.opr_st_dt_tm,t2.hatch_num,t3.delay_code,t3.delay_st_dt_tm,t3.delay_ed_dt_tm
、ここでTEMP2のSQLを作成し、重複する結果なしの両方のテーブルを結合する方法
SELECT DISTINCT t1.scn,CONVERT(DATE,t2.opr_st_dt_tm)as work_date,t2.hatch_num,
t3.delay_code,REPLACE(CONVERT(varchar(5),t3.delay_st_dt_tm,108),':','')[time_start],
REPLACE(CONVERT(varchar(5),t3.delay_ed_dt_tm,108),':','')[time_end]
FROM ccostallysheet t1
INNER JOIN ccostsitem t2 ON t2.master_id = t1.id
INNER JOIN ccostsdelayitem t3 ON t3.master_id = t1.id
WHERE t2.hatch_num = 'H2' AND t2.hatch_num IS NOT NULL
GROUP BY t1.scn,t2.opr_st_dt_tm,t2.hatch_num,t3.delay_code,t3.delay_st_dt_tm,t3.delay_ed_dt_tm
ですか?
あなたは#temp1と#temp2の両方のデータを提供できます – Leo
'SELECT DISTINCT'と' GROUP BY' ...とGROUP BY'を組み合わせても集計関数はありません...どうしてですか? – jarlh