Jag gjorde ett nytt försök..
SELECT ArrNo FROM t_songtitlar WHERE ArrNo Not In(SELECT ArrNo FROM t_songtitlar);
Inga erro men inte heller något resultat
2 svar · 601 visningar · startad av saw
Jag har grunnat och funderat samt letat, men jag hittar inga svar, så jag måste fråga proffsen. (DB=MySql)
I tabellen t_songtitlar har jag ett fält ArrNå(text, kanske fel datatyp men det var mest för formateringens skull).
Där har jag t ex:
001
002
004
006 osv.
Problemet gäller, hur hittar jag de AnnNo som inte finns, i detta fallet 003 och 005 samt nästa ArrNo här 007.
SELECT Max(arrno)+1 AS MaxArr FROM t_songtitlar WHERE t_songtitlar.ArrNo< '900'
//här får jag inte fram de som jag har missat
Det känns som om det skulle vara ganska så simpelt, men jag får inte till det alls.
Tacksam för hjälp
Jag gjorde ett nytt försök..
SELECT ArrNo FROM t_songtitlar WHERE ArrNo Not In(SELECT ArrNo FROM t_songtitlar);
Inga erro men inte heller något resultat
Jag kom inte på något annat sätt, än att köra med en array och sedan plocka bort de verkliga ArrNo.
sql = "SELECT arrno FROM t_songtitlar where arrno < 900 ORDER BY arrno";
DataSet ds = Webbutill.fillDs(DBConn, sql, "arrreg");
sql = "SELECT Max(ArrNo)+1 AS MaxArr FROM t_songtitlar WHERE t_songtitlar.ArrNo< '900' ";
DataSet nyttDs = Webbutill.fillDs(DBConn, sql, "Maxarrreg");
int sluta = Convert.ToInt32(nyttDs.Tables["Maxarrreg"].Rows[0]["MaxArr"]);
int i, a, borga;
int rader = ds.Tables["arrreg"].Rows.Count;
nr = new string[rader];
for (borga = 0; borga < sluta; borga++)
{
i = borga + 1;
ddNextId.Items.Add(i.ToString("000"));
}
for (a = 0; a < rader; a++)
{
ddNextId.Items.Remove(ds.Tables["arrreg"].Rows[a]["arrno"].ToString());
}
Nu fungerar detta bra.