私はtable1とtable3の下にあります。 table2の 'Counts'フィールドは、table1とtable3のvaluessフィールドに基づいて更新する必要があります。つまり、23がtable1に4回、table3と45が1回表示されます。表2は、その数で更新する必要があります。最初の2つのテーブルのデータを使用して3番目のテーブルを更新するSP
TABLE1
Id | Data | Valuess
1 | rfsd | 23
2 | fghf | 45
3 | rhhh | 23
表3
Id | Data | Valuess
1 | rfsd | 23
2 | tfgy | 23
table2の
Id | Fields | Counts
1 | 23 | 4
2 | 45 | 1
私はこれを達成するには、以下のストアドプロシージャを使用しています。
WITH t13 AS (
SELECT Id, Data, Valuess FROM Table1 UNION ALL SELECT Id, Data, Valuess FROM Table3),
cte AS (SELECT Valuess,COUNT(*) AS Count2 FROM t13 GROUP BY Valuess)
UPDATE t2
SET t2.Counts = cte.Count2
FROM Table2 t2 JOIN cte ON t2.Fields = cte.Valuess;
QUESTION
ではなく、上記テーブルデータ、iは、テーブルデータの下有する....
TABLE1
Id | Data | Valuess
1 | rfsd | 004561
2 | fghf | 0045614
3 | rhhh | adcwyx
表3
Id | Data | Valuess
1 | rfsd | 0045614
2 | tfgy | 004561
表2
Id | Fields | Counts
1 | 0045614 | 4
2 | adcwyxv | 1
したがってここでは、table1とtable3のvaluessフィールドに英数字データがあります。また、我々は '004561'と '0045614'のようなデータを持っています
フィールドの7番目の要素を切り取り、テーブル3の7番目の要素を切り捨てて比較したいと思います。すなわち004561、004561とadcwyxは表1。 004561および004561は、表3から取得され、表2の004561およびadcwyxと比較されます(最初にtable2の7番目の要素を切り捨てて比較する必要があります)。
最終結果は表2に示すようになります。
SQL Server!= MySQL。 – Barmar
table1の値としての 'adcwyx'はどのようにtable2の' adcwyxv'になりますか? – SqlZim
sqlzim - 2つの異なるデータ値であり、お互いに依存しません。 –