Welcome to Sign in | Help

Re: AJUTOR !!!

  •  04-22-2008, 1:43 PM

    Re: AJUTOR !!!

    am folosit 2 tabele:
    Table1 contine datele originale la care am adaugat eu o coloana PROGRAME_TEMP care o folosesc pt calcule
    Table2 contine rezultatele la care am adaugat o col Program care o folosesc pt calcule
    (dupa ce rulezi query-urile o sa vezi exact la ce se folosesc coloanele adaugate)

    si apoi am rulat query-urile:
    1. aduc in col PROGRAME_TEMP ce ai tu in programe si pun ";" (punct si virgula) la sfarsit (ca sa avem un format de genul "C1:2;" pt fiecare set de program) - tb sa ai grija ca sirul original sa nu aibe deja ";" la sfarsit ca in cazul "20     BB     A1:10;" pt ca atunci se termina cu 2 ";" si nu e bine (eventual fa un replace in care sa inlocuiesti ";;" cu ";" pe toate inregistrarile ca sa fi sigur) - totodata inlocuiesc valorile nulle cu " :0;"ca sa rezolv si problema celor nulle

    UPDATE Table1 SET Table1.PROGRAME_TEMP = IIf(IsNull(Table1!programe)," :0;",Table1!programe+";");


    aici ar trebui facuta o bucla  pt punctele 2 si 3 care sa se opreasca cand nu mai exista inregitrari care sa aibe pe campul PROGRAME_TEMP valori diferite de ""
    2. copiez in tabelul de rezultate un set de inregistrari punand pe campul Program vlori de genul "A1:10" urmand sa le sparg la punctul 4; conditia pusa ma asigura ca nu introduc acele inregistrari goale de care ziceai tu ca s-ar putea sa apara din cauza numarului diferit de programe.

    INSERT INTO Table2 ( Program, Tip, Bucati )
    SELECT Mid(Table1!PROGRAME_TEMP,1,InStr(1,Table1!PROGRAME_TEMP,";")-1) AS Expr1, Table1.tip, Table1.bucati
    FROM Table1
    WHERE (((Table1.PROGRAME_TEMP)<>""));


    3. sterg de pe campul PROGRAME_TEMP ceea am introdus deja in rezultate la punctul anterior lasand doar ce a ramas de introdus

    UPDATE Table1 SET Table1.PROGRAME_TEMP = Mid(Table1!PROGRAME_TEMP,InStr(1,Table1!PROGRAME_TEMP,";")+1)
    WHERE (((Table1.PROGRAME_TEMP)<>""));

    aici se incheie bucla
    4. sparg campul Program in cele 2 campuri: Programa si Bucati_Pe_Programa :)

    UPDATE Table2 SET Table2.Programa = Mid(Table2!Program,1,InStr(1,Table2!Program,":")-1), Table2.Bucati_Pe_Programa = Mid(Table2!Program,InStr(1,Table2!Program,":")+1);


    cam atat, eu nu am reusit alta varianta sa fac chestia asta prin sql fara bucla :(
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems