[ joskom @ 22.11.2005. 08:16 ] @
Prebacio sam bazu s Interbesa na OracleXE
Imam problem kod SQL-a
Inace u Interbesu sve radi OK

select *

from artikli left outer join cjenik on
(artikli.orgsifart=cjenik.orgsifart and
( (cjenik.matcjen= :mmatcjen or cjenik.matcjen is null) ) )

where artikli.matorg= :mmatorg

order by nazivart

Pozdrav
[ Dejan Topalovic @ 22.11.2005. 08:28 ] @
Koju gresku dobijes?
[ joskom @ 22.11.2005. 08:52 ] @
Ne dobijem nista
Ne javlja gresku ali ne daje ni rezultat
[ Dejan Topalovic @ 22.11.2005. 09:04 ] @
De posalji mi CREATE izraze za obe tabele i dodaj nekoliko INSERT statementa sa podacima, da isprobam ja kod sebe...
[ joskom @ 22.11.2005. 10:08 ] @
Evo stize


CREATE TABLE "ARTIKLI"
( "ORGSIFART" CHAR(16) NOT NULL ENABLE,
"MATORG" CHAR(3),
"SIFRAART" CHAR(13),
"NAZIVART" VARCHAR2(255),
"JMJART" CHAR(5),
"GRUPAART" CHAR(20),
"BARCODE" CHAR(13),
"KALOART" FLOAT(126),
"OC2" CHAR(1),
"TBART" CHAR(2),
"REPROCJENIK" CHAR(1),
"BARCODE1" CHAR(13),
"BARCODE2" CHAR(13),
"BARCODE3" CHAR(13),
"BARCODE4" CHAR(13),
"USLUGA" CHAR(1),
"NOR" NUMBER(9,2),
CONSTRAINT "PK_ARTIKLI" PRIMARY KEY ("ORGSIFART") ENABLE
)


CREATE TABLE "CJENIK"
( "MATCJENSIFRAART" CHAR(16) NOT NULL ENABLE,
"ORGSIFART" CHAR(16),
"MATCJEN" CHAR(3),
"MATORG" CHAR(3),
"SIFRAART" CHAR(13),
"CIJENAMALOP" FLOAT(126),
"CIJENAVELEP" FLOAT(126),
"CIJENANABAV" FLOAT(126),
"PRISTOJBA" FLOAT(126),
CONSTRAINT "PK_CJENIK" PRIMARY KEY ("MATCJENSIFRAART") ENABLE
)



INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 2', '1', '2', 'OSTALE TRGOVINE', 'M2', 'MJESEC',

'', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 3', '1', '3', 'TRGOVINA PREKO 22,00 SATA', 'M2',

'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 4', '1', '4', 'HOTEL, ODMARALIŠTE, PANSION',

'M2', 'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 5', '1', '5', 'ODVOZ SMEĆA SA

POM.DOBRA-GODIŠNJE', '1', 'GODIŠNJE', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 6', '1', '6', 'AUTO-KAMP - OBJEKTI', 'M2',

'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 7', '1', '7', 'AUTO-KAMP - ZEMLJIŠTE', 'M2',

'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 8', '1', '8', 'ŠKOLE, KULT. USTANOVE', 'M2',

'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 9', '1', '9', 'CRKVE I SAMOSTANI - PAUŠALNO

MJESEČNO', '1', 'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 10', '1', '10', 'UREDI I KANCELARIJE', 'M2',

'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');
INSERT INTO ARTIKLI (ORGSIFART, MATORG, SIFRAART, NAZIVART, JMJART, GRUPAART, BARCODE, KALOART, OC2, TBART, REPROCJENIK,

BARCODE1, BARCODE2, BARCODE3, BARCODE4, USLUGA) VALUES (' 1 1', '1', '1', 'ODVOZ SMEĆA - DOMAĆINSTVA',

'M2', 'MJESEC', '', 0, 'D', '1', 'C', '', '', '', '', 'D');

COMMIT WORK;



INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 1', ' 1 1', '1', '1', '1', 0.439999997615814, 0.360000014305115,

0.360000014305115, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 2', ' 1 2', '1', '1', '2', 3.77999997138977, 3.09999990463257,

3.09999990463257, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 3', ' 1 3', '1', '1', '3', 42.8199996948242, 35.0999984741211,

35.0999984741211, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 4', ' 1 4', '1', '1', '4', 2.00999999046326, 1.64999997615814,

1.64999997615814, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 5', ' 1 5', '1', '1', '5', 2440, 2000, 2000, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 6', ' 1 6', '1', '1', '6', 8.05000019073486, 6.59999990463257,

6.59999990463257, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 7', ' 1 7', '1', '1', '7', 0.490000009536743, 0.400000005960464,

0.400000005960464, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 8', ' 1 8', '1', '1', '8', 0.370000004768372, 0.300000011920929,

0.300000011920929, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 9', ' 1 9', '1', '1', '9', 61, 50, 50, 0);
INSERT INTO CJENIK (MATCJENSIFRAART, ORGSIFART, MATCJEN, MATORG, SIFRAART, CIJENAMALOP, CIJENAVELEP, CIJENANABAV,

PRISTOJBA) VALUES (' 1 10', ' 1 10', '1', '1', '10', 1.95000004768372, 1.60000002384186,

1.60000002384186, 0);

COMMIT WORK;
[ Dejan Topalovic @ 22.11.2005. 10:25 ] @
Kod mene radi...

Usput, tvoj upit mi djeluje nekako konfuzno... JOIN mi je nekako zbunjujuci :)

Da pokusas ovako?

SELECT *
FROM artikli a
LEFT OUTER JOIN cjenik c on
a.orgsifart=c.orgsifart
WHERE a.matorg= :mmatorg
AND (c.matcjen = :mmatcjen OR c.matcjen IS NULL)
ORDER BY a.nazivart


Koje vrijednosti proslijedjujes za :mmatorg i :mmatcjen ? Uz trenutno postojece podatke u tabelama, rezultat ces dobiti samo ukoliko su vrijednosti mmatorg = 1 i mmatcjen = 1.
[ joskom @ 22.11.2005. 14:45 ] @
U necem gijesim, ali nikako da skuzim iako je sve prosto
Ne radi mi ni ovo

SELECT * FROM ARTIKLI WHERE MATORG= :MMATORG

Query1.ParamByName('MMATORG').AsString := '1';

Label1.Caption := Query1.ParamByName('MMATORG').Value ;

Query1.Open;


Pri pokretanju Label1.Caption je jednak '1'
[ Dejan Topalovic @ 22.11.2005. 16:18 ] @
Evo pogledao sam malo detaljnije tvoj CREATE TABLE izraz...

Umjesto CHAR, pozeljno je da koristis VARCHAR2, jer u toj CHAR koloni imas "1 " (sa dva blankspace-a), koje usporedjujes sa "1" i zato ne dobijas odgovarajucu vrijednost.