0

SQL 「abc」にテーブルがあり、その中に「number」列があり、この列に(1,2,3,4)などが含まれているとします。

2 番目のテーブル"xyz"には列 "number" があり、この列には (1,2,3,4,5,6,7,8,9) が含まれています。

ここで、これら 2 つを比較し、3 番目のテーブルに等しいデータを挿入します。では、どうすればこれを行うことができますか?

コード:

string str = "SELECT     Invoice_Details.PGI_ID, PARTY_BOOKING_DETAILS.PGI_ID AS abc ";
str += "FROM         PARTY_BOOKING_MAIN INNER JOIN ";
str += "    PARTY_BOOKING_DETAILS ON PARTY_BOOKING_MAIN.PBM_ID = PARTY_BOOKING_DETAILS.PBM_ID CROSS JOIN ";
str += "          Invoice_Details where PARTY_BOOKING_MAIN.PM_ID = 1 ";

SqlConnection con = new SqlConnection("data source = .; database = ePartyDatabase01; integrated security = true");
con.Open();
SqlCommand cmd1 = new SqlCommand("update Invoice_Details set [status] = @a", con);
SqlCommand cmd = new SqlCommand(str, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
    if (dr["PGI_ID"].ToString() == dr["abc"].ToString())
    {

        cmd1.Parameters.AddWithValue("@a", 1);

    }
}

dr.Close();
cmd1.ExecuteNonQuery();

con.Close();
4

3 に答える 3

0

おそらく、次のようなクエリを使用する必要があります。

insert into table3 (number)
select 
    t1.number
from abc t1
inner join xyz t2
    on t1.number = t2.number
于 2013-02-27T09:55:55.460 に答える
0

これはまだテストしていませんが、C# は必要ないかもしれません。次のようにしてみてください。

SELECT xyz.number
INTO third_table
FROM (
   SELECT t1.number
   FROM first_table t1 JOIN second_table t2 ON t1.number = t2.number
) AS xyz
于 2013-02-27T09:56:08.413 に答える
0

多分このようなもの:

INSERT INTO table3(number)
SELECT
    number
FROM
    xyz
WHERE NOT EXISTS
    (
        SELECT
            NULL
        FROM
            abc
        WHERE
            abc.number=xyz.number
    )
于 2013-02-27T09:56:18.923 に答える