Tre domande da principiante

lunedì 24 ottobre 2005 - 12.04

lordwaizard Profilo | Senior Member

1)Devo copiare alcune colonne di una tabella in un altra tabella utilizzo il seguente codice:
INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT riferimento,codice,descrif,qta,prezzo FROM pod
Fin qui tutto bene.
Ora vorrei anche copiare il numero d'ordine che è dato da due colonne è possibile mettere in una colonna il testo di due

colonne differenti?
In più se inserisco la colonna id nella tabella di destinazione ho dei problemi. Come faccio a darli ''?

2) Una volta caricati i dati in una datagrid è possibili aggiornarli in tempo reale?
Se si avete qualche esempio?

3) In una colonna di una datagrid dovrei inserire una combobox per riga ho utilizzato EbControls ci sono altri metodi o

liberie?

Grazie in anticipo
Davide

lbenaglia Profilo | Guru

>1)Devo copiare alcune colonne di una tabella in un altra tabella
>utilizzo il seguente codice:
>INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT
>riferimento,codice,descrif,qta,prezzo FROM pod
>Fin qui tutto bene.

Ciao Davide,

OK.

>Ora vorrei anche copiare il numero d'ordine che è dato da due
> colonne è possibile mettere in una colonna il testo di due
>colonne differenti?

Se la colonna di destinazione è di tipo stringa puoi concatenare le due colonne di origine in una sola, eventualmente se non lo sono castando a stringa le singole colonne.
Purtroppo il discorso è troppo nebuloso, dovresti prima di tutto dirci con che DBMS stai lavorando e postare la struttura delle tabelle (CREATE TABLE), alcune righe di prova (INSERT INTO) ed il risultato che vorresti ottenere.

>In più se inserisco la colonna id nella tabella di destinazione
>ho dei problemi. Come faccio a darli ''?

Che stai cercando di fare? Che tipo di problemi hai? Posta un esempio completo come ti ho chiesto poco sopra, e vedrai che giungeremo ad una soluzione.

>2) Una volta caricati i dati in una datagrid è possibili aggiornarli
>in tempo reale?
>Se si avete qualche esempio?

Se la data grid è "bounded" con un recordset, è sufficiente rieseguire la query per ottenere un refresh del suo contenuto. Per l'esempio di codice dipende dal linguaggio che stai utilizzando. Prova a fornire maggiori informazioni nella speranza che qualcuno ti fornisca un esempio di codice funzionante.


>3) In una colonna di una datagrid dovrei inserire una combobox
> per riga ho utilizzato EbControls ci sono altri metodi o
>liberie?

Mi dispiace, ma qua non sono in grado di rispondere.

>Grazie in anticipo
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

lordwaizard Profilo | Senior Member

Grazie per le risposte ti posto tutto in modo da essere più chiaro:

STRUTTURA:
CREATE TABLE [dbo].[ordini] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ordine] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[codice] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[descrizione] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[qta] [int] NOT NULL ,
[costo] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[finale] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[dordine] [datetime] NULL ,
[darrivo] [datetime] NULL
) ON [PRIMARY]
GO

QUERY SQL:
INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT riferimento,codice,descrif,qta,prezzo FROM pod

DOMANDE:
Ora se utilizzo questa stringa non funziona perchè c'è la colonna id come posso utilizzare questa query avendo nella tabella di destinazione la colonna id?

La tipologia è text, ma come posso a livello di query unire due colonne di tipo text?
(Scusa per l'ignoranza)

Se la data grid è "bounded" ... Conosci qualche esempio da scaricare?

Grazie ancora.
Ciao
Davide

lbenaglia Profilo | Guru

>QUERY SQL:
>INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT
>riferimento,codice,descrif,qta,prezzo FROM pod

Ciao Davide,

posta anche la struttura della tabella "pod" ed i comandi di INSERT per inserivi alcune righe di prova.

>DOMANDE:
>Ora se utilizzo questa stringa non funziona perchè c'è la colonna
>id come posso utilizzare questa query avendo nella tabella di
>destinazione la colonna id?

L'insert che hai postato dovrebbe funzionare dato che valorizzi tutte le colonne NOT NULL della tabella di destinazione omettendo la colonna IDENTITY che si autoincrementerà autonomamente.
Purtroppo non mi hai ancora detto che errore hai.

>La tipologia è text, ma come posso a livello di query unire due
> colonne di tipo text?
>(Scusa per l'ignoranza)

TEXT?! Quali colonne utilizzano il datatype TEXT?

>Grazie ancora.
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

lordwaizard Profilo | Senior Member

Per il discorso id risolto, non mi da più errori probabilmente prima avevo sbagliato la query.
Le colonne con datatype text sono in due diverse tabelle ma non so come raggiungerle
ES:
INSERT INTO ordini(ordine,codice,descrizione,qta,costo,codord) SELECT riferimento,codice,descrif,qta,prezzo FROM pod, CODCLI+NORDINE!?!

Come posso comporre la query?

Grazie per l'aiuto
Davide


lbenaglia Profilo | Guru

>Per il discorso id risolto, non mi da più errori probabilmente
>prima avevo sbagliato la query.

OK.

>Le colonne con datatype text sono in due diverse tabelle ma non
>so come raggiungerle

Raggiungerle?!?!

>Come posso comporre la query?

Boh, non ho capito che vuoi fare.
Ricomincia dall'inizio, postando la struttura delle tabelle, alcune righe di prova ed il risultato che vorresti ottenere.
Ma questa volta, fallo sul serio!!! :-)

>Grazie per l'aiuto
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

lordwaizard Profilo | Senior Member


Tabella 1
CREATE TABLE [dbo].[anagrafica] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
...
[codcli] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[rev] [int] NULL ,
...
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Tabella2

CREATE TABLE [dbo].[ordi] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
...
[numcli] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[rev] [int] NULL ,
...
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


Tabella 3

CREATE TABLE [dbo].[ordini] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ordine] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[orgine] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[codice] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[descrizione] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[qta] [int] NOT NULL ,
[costo] [nvarchar] (50) COLLATE Latin1_General_CI_AS NOT NULL ,
[finale] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[dordine] [datetime] NULL ,
[darrivo] [datetime] NULL
) ON [PRIMARY]
GO

1) Devo eseguire sempre:
INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT riferimento,codice,descrif,qta,prezzo FROM pod
però vorrei ampliare la query compilando il campo "origine" nella tabella ordini prendendo i valori da anagrafica.codcli e ordi.numcli

2) Un'altra cosa ammettendo di avere più righe nello stesso ordine con lo stesso codice è possibile fargli sommare le qta?

ES Contenuto originale

PRD01 CASE 5 Pezzi
PRD02 RACK 9 Pezzi
PRD01 CASE 10 Pezzi


E' possibile visualizzarlo automaticamente così?
PRD01 CASE 15 Pezzi
PRD02 RACK 9 Pezzi


ovviamente la colonna qta è una colonna integer

Grazie e scusa per le domande
Davide





lbenaglia Profilo | Guru

>CREATE TABLE [dbo].[anagrafica] (
...
>CREATE TABLE [dbo].[ordi] (
...
>CREATE TABLE [dbo].[ordini] (
>
>1) Devo eseguire sempre:
>INSERT INTO ordini(ordine,codice,descrizione,qta,costo) SELECT
>riferimento,codice,descrif,qta,prezzo FROM pod

Appunto, "pod" che cos'è?!?!?!?!

Davide, se non perdi 5 minuti per preparare un esempio FUNZIONANTE postando le CREATE TABLE CORRETTE e le relative INSERT INTO, specificando IN MODO CHIARO ED INEQUIVOCABILE il risultato che vuoi ottenere, temo che sarà impossibile aiutarti, semplicemente perché non capisco che vuoi fare.


>però vorrei ampliare la query compilando il campo "origine" nella
> tabella ordini prendendo i valori da anagrafica.codcli e ordi.numcli

E questa frase cosa significa? Mi fai un esempio in Transact SQL?


>2) Un'altra cosa ammettendo di avere più righe nello stesso ordine
> con lo stesso codice è possibile fargli sommare le qta?

Fargli sommare DOVE?
Vuoi inserire le singole righe e scrivere successivamente una query che restituisce la somma delle quantità per le due colonne di cui NON indichi il nome?

>Grazie e scusa per le domande
Devi essere più chiaro, non posso entrare nella tua testa per capire che hai in mente :-)

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5